setup-env.sh: make setup scripts work with set -u
				
					
				
			- Add set -u to the setup-env.sh test script
- Refactor lines in setup-env.sh that tested potentially undefined
  variables to use the `[ -z ${var+x} ]` construct
			
			
This commit is contained in:
		@@ -163,6 +163,9 @@ unuse() {
 | 
			
		||||
# Make sure no environment is active
 | 
			
		||||
unset SPACK_ENV
 | 
			
		||||
 | 
			
		||||
# fail with undefined variables
 | 
			
		||||
set -u
 | 
			
		||||
 | 
			
		||||
# Source setup-env.sh before tests
 | 
			
		||||
.  share/spack/setup-env.sh
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -46,9 +46,12 @@ spack() {
 | 
			
		||||
        emulate -L sh
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # accumulate initial flags for main spack command
 | 
			
		||||
    # accumulate flags meant for the main spack command
 | 
			
		||||
    # the loop condition is unreadable, but it means:
 | 
			
		||||
    #     while $1 is set (while there are arguments)
 | 
			
		||||
    #       and $1 starts with '-' (and the arguments are flags)
 | 
			
		||||
    _sp_flags=""
 | 
			
		||||
    while [ "${1#-}" != "${1}" ]; do
 | 
			
		||||
    while [ ! -z ${1+x} ] && [ "${1#-}" != "${1}" ]; do
 | 
			
		||||
        _sp_flags="$_sp_flags $1"
 | 
			
		||||
        shift
 | 
			
		||||
    done
 | 
			
		||||
@@ -62,8 +65,9 @@ spack() {
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # set the subcommand if there is one (if $1 is set)
 | 
			
		||||
    _sp_subcommand=""
 | 
			
		||||
    if [ -n "$1" ]; then
 | 
			
		||||
    if [ ! -z ${1+x} ]; then
 | 
			
		||||
        _sp_subcommand="$1"
 | 
			
		||||
        shift
 | 
			
		||||
    fi
 | 
			
		||||
@@ -102,7 +106,7 @@ spack() {
 | 
			
		||||
                case $_sp_arg in
 | 
			
		||||
                    activate)
 | 
			
		||||
                        _a="$@"
 | 
			
		||||
                        if [ -z "$1" ] || \
 | 
			
		||||
                        if [ -z ${1+x} ] || \
 | 
			
		||||
                           [ "${_a#*--sh}" != "$_a" ] || \
 | 
			
		||||
                           [ "${_a#*--csh}" != "$_a" ] || \
 | 
			
		||||
                           [ "${_a#*-h}" != "$_a" ];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user