csh: don't require SPACK_ROOT for sourcing setup-env.csh (#18225)

Don't require SPACK_ROOT for sourcing setup-env.csh and make output more consistent
This commit is contained in:
Todd Gamblin
2020-10-23 18:54:34 -07:00
committed by GitHub
parent 4cf85ed5f7
commit 560beb098e
15 changed files with 240 additions and 120 deletions

View File

@@ -12,17 +12,26 @@
# otherwise append to that variable.
set _pa_varname = PATH;
set _pa_new_path = $_pa_args[1];
[ $#_pa_args -gt 1 ] && set _pa_varname = $_pa_args[1] && set _pa_new_path = $_pa_args[2];
if ($#_pa_args > 1) then
set _pa_varname = $_pa_args[1]
set _pa_new_path = $_pa_args[2]
endif
# Check whether the variable is set yet.
set _pa_old_value = ""
eval set _pa_set = '$?'$_pa_varname
[ $_pa_set -eq 1 ] && eval set _pa_old_value='$'$_pa_varname;
if ($_pa_set == 1) then
eval set _pa_old_value='$'$_pa_varname
endif
# Do the actual prepending here, if it is a dir and not already in the path
if ( -d $_pa_new_path && \:$_pa_old_value\: !~ *\:$_pa_new_path\:* ) then
[ -n "$_pa_old_value" ] && setenv $_pa_varname $_pa_new_path\:$_pa_old_value
[ -z "$_pa_old_value" ] && setenv $_pa_varname $_pa_new_path
if ("x$_pa_old_value" == "x") then
setenv $_pa_varname $_pa_new_path
else
setenv $_pa_varname $_pa_new_path\:$_pa_old_value
endif
endif
unset _pa_args _pa_new_path _pa_old_value _pa_set _pa_varname

View File

@@ -57,8 +57,12 @@ endif
# Set up args -- we want a subcommand and a spec.
set _sp_subcommand=""
set _sp_spec=""
[ $#_sp_args -gt 0 ] && set _sp_subcommand = ($_sp_args[1])
[ $#_sp_args -gt 1 ] && set _sp_spec = ($_sp_args[2-])
if ($#_sp_args > 0) then
set _sp_subcommand = ($_sp_args[1])
endif
if ($#_sp_args > 1) then
set _sp_spec = ($_sp_args[2-])
endif
# Run subcommand
switch ($_sp_subcommand)
@@ -66,7 +70,9 @@ case cd:
shift _sp_args # get rid of 'cd'
set _sp_arg=""
[ $#_sp_args -gt 0 ] && set _sp_arg = ($_sp_args[1])
if ($#_sp_args > 0) then
set _sp_arg = ($_sp_args[1])
endif
shift _sp_args
if ( "$_sp_arg" == "-h" || "$_sp_args" == "--help" ) then
@@ -79,7 +85,9 @@ case env:
shift _sp_args # get rid of 'env'
set _sp_arg=""
[ $#_sp_args -gt 0 ] && set _sp_arg = ($_sp_args[1])
if ($#_sp_args > 0) then
set _sp_arg = ($_sp_args[1])
endif
if ( "$_sp_arg" == "-h" || "$_sp_arg" == "--help" ) then
\spack env -h
@@ -87,7 +95,9 @@ case env:
switch ($_sp_arg)
case activate:
set _sp_env_arg=""
[ $#_sp_args -gt 1 ] && set _sp_env_arg = ($_sp_args[2])
if ($#_sp_args > 1) then
set _sp_env_arg = ($_sp_args[2])
endif
# Space needed here to differentiate between `-h`
# argument and environments with "-h" in the name.
@@ -106,7 +116,9 @@ case env:
breaksw
case deactivate:
set _sp_env_arg=""
[ $#_sp_args -gt 1 ] && set _sp_env_arg = ($_sp_args[2])
if ($#_sp_args > 1) then
set _sp_env_arg = ($_sp_args[2])
endif
# Space needed here to differentiate between `--sh`
# argument and environments with "--sh" in the name.