From f6f7f2f65712e6fa114f5751a72ad26cd893e92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Andrea=20Illanes=20Albornoz?= Date: Sun, 19 Feb 2023 07:19:26 +0100 Subject: Reject empty variables from the command line. --- subr.ex/ex_pkg.subr | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'subr.ex/ex_pkg.subr') diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr index 6a5670be..f88836a9 100644 --- a/subr.ex/ex_pkg.subr +++ b/subr.ex/ex_pkg.subr @@ -100,22 +100,27 @@ ex_pkg_get_packages() { # # ex_pkg_load_vars() - load build variables -# @_rstatus: out reference to status string +# @_rstatus: out reference to status string +# @_rbuild_arch: in reference to build architecture +# @_rbuild_kind: in reference to build kind +# @_rprefix: in reference to absolute pathname to top-level prefix # # Return: zero (0) on success, non-zero (>0) on failure, build variables post-return on success. # ex_pkg_load_vars() { - local _eplv_rstatus="${1#\$}" \ - _eplv_rc=0 _eplv_fname=""; + local _eplv_rstatus="${1#\$}" _eplv_rbuild_arch="${2#\$}" \ + _eplv_rbuild_kind="${3#\$}" _eplv_rprefix="${4#\$}" \ + _eplv_build_arch="" _eplv_rc=0 _eplv_fname=""; - if ! rtl_lmatch \$ARCH "nt32 nt64"; then + if ! rtl_lmatch "${_eplv_rbuild_arch}" "nt32 nt64"; then _eplv_rc=1; - rtl_setrstatus "${_eplv_rstatus}" 'Error: invalid architecture \`'"${ARCH}"''\''.'; - elif ! rtl_lmatch \$BUILD_KIND "debug release"; then + rtl_setrstatus "${_eplv_rstatus}" 'invalid architecture \`${'"${_eplv_rbuild_arch}"'}'\''.'; + elif ! rtl_lmatch "${_eplv_rbuild_kind}" "debug release"; then _eplv_rc=1; - rtl_setrstatus "${_eplv_rstatus}" 'Error: unknown build type \`'"${BUILD_KIND}"''\''.'; + rtl_setrstatus "${_eplv_rstatus}" 'unknown build type \`${'"${_eplv_rbuild_kind}"'}'\''.'; else - case "${ARCH}" in + eval _eplv_build_arch="\${${_eplv_rbuild_arch}}"; + case "${_eplv_build_arch}" in nt32) DEFAULT_TARGET="i686-nt32-midipix"; ;; nt64) DEFAULT_TARGET="x86_64-nt64-midipix"; ;; esac; @@ -131,9 +136,9 @@ ex_pkg_load_vars() { fi; done; - if [ "${PREFIX:+1}" != 1 ]; then + if eval [ \"\${${_eplv_rprefix}:+1}\" != 1 ]; then _eplv_rc=1; - rtl_setrstatus "${_eplv_rstatus}" 'Error: ${PREFIX} empty or unset.'; + rtl_setrstatus "${_eplv_rstatus}" '\${PREFIX} empty or unset.'; fi; fi; -- cgit v1.2.3