Fix exit codes in fish (#27028)
This commit is contained in:
parent
c04b2fa26a
commit
574395af93
@ -289,13 +289,13 @@ spack -m install --fake a
|
||||
|
||||
# create a test environment for testing environment commands
|
||||
echo "Creating a mock environment"
|
||||
spack env create spack_test_env
|
||||
spack env create spack_test_2_env
|
||||
spt_succeeds spack env create spack_test_env
|
||||
spt_succeeds spack env create spack_test_2_env
|
||||
|
||||
# ensure that we uninstall b on exit
|
||||
function spt_cleanup -p %self
|
||||
echo "Removing test environment before exiting."
|
||||
spack env deactivate 2>&1 > /dev/null
|
||||
spack env deactivate > /dev/null 2>&1
|
||||
spack env rm -y spack_test_env spack_test_2_env
|
||||
|
||||
title "Cleanup"
|
||||
@ -381,14 +381,17 @@ spt_contains "usage: spack env deactivate " spack env deactivate --help
|
||||
|
||||
title 'Testing activate and deactivate together'
|
||||
echo "Testing 'spack env activate spack_test_env'"
|
||||
spt_succeeds spack env activate spack_test_env
|
||||
spack env activate spack_test_env
|
||||
is_set SPACK_ENV
|
||||
|
||||
echo "Testing 'spack env deactivate'"
|
||||
spt_succeeds spack env deactivate
|
||||
spack env deactivate
|
||||
is_not_set SPACK_ENV
|
||||
|
||||
echo "Testing 'spack env activate spack_test_env'"
|
||||
spt_succeeds spack env activate spack_test_env
|
||||
spack env activate spack_test_env
|
||||
is_set SPACK_ENV
|
||||
|
||||
@ -397,6 +400,7 @@ despacktivate
|
||||
is_not_set SPACK_ENV
|
||||
|
||||
echo "Testing 'spack env activate --temp'"
|
||||
spt_succeeds spack env activate --temp
|
||||
spack env activate --temp
|
||||
is_set SPACK_ENV
|
||||
spack env deactivate
|
||||
@ -407,6 +411,12 @@ spack env activate spack_test_env
|
||||
spack env activate spack_test_2_env
|
||||
spt_contains 'spack_test_2_env' 'fish' '-c' 'echo $PATH'
|
||||
spt_does_not_contain 'spack_test_env' 'fish' '-c' 'echo $PATH'
|
||||
despacktivate
|
||||
|
||||
echo "Correct error exit codes for activate and deactivate"
|
||||
spt_fails spack env activate nonexisiting_environment
|
||||
spt_fails spack env deactivate
|
||||
|
||||
|
||||
#
|
||||
# NOTE: `--prompt` on fish does nothing => currently not implemented.
|
||||
|
@ -383,7 +383,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
|
||||
if check_sp_flags $sp_flags
|
||||
command spack $sp_flags $__sp_remaining_args
|
||||
return 0
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
@ -426,6 +426,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if test "x$sp_arg" = "x-h"; or test "x$sp_arg" = "x--help"
|
||||
# nothing more needs to be done for `-h` or `--help`
|
||||
command spack cd -h
|
||||
return
|
||||
else
|
||||
# extract location using the subcommand (fish `(...)`)
|
||||
set -l LOC (command spack location $sp_arg $__sp_remaining_args)
|
||||
@ -433,14 +434,13 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
# test location and cd if exists:
|
||||
if test -d "$LOC"
|
||||
cd $LOC
|
||||
return
|
||||
else
|
||||
return 1
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
# CASE: spack subcommand is `env`. Here we get the spack runtime to
|
||||
# supply the appropriate shell commands for setting the environment
|
||||
@ -461,6 +461,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if test "x$sp_arg" = "x-h"; or test "x$sp_arg" = "x--help"
|
||||
# nothing more needs to be done for `-h` or `--help`
|
||||
command spack env -h
|
||||
return
|
||||
else
|
||||
switch $sp_arg
|
||||
case "activate"
|
||||
@ -469,6 +470,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if check_env_activate_flags $_a
|
||||
# no args or args contain -h/--help, --sh, or --csh: just execute
|
||||
command spack env activate $_a
|
||||
return
|
||||
else
|
||||
# actual call to activate: source the output
|
||||
set -l sp_env_cmd "command spack $sp_flags env activate --fish $__sp_remaining_args"
|
||||
@ -477,6 +479,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if test -n "$__sp_stderr"
|
||||
echo -s \n$__sp_stderr 1>&2 # current fish bug: handle stderr manually
|
||||
end
|
||||
return $__sp_stat
|
||||
end
|
||||
|
||||
case "deactivate"
|
||||
@ -485,6 +488,7 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if check_env_deactivate_flags $_a
|
||||
# just execute the command if --sh, --csh, or --fish are provided
|
||||
command spack env deactivate $_a
|
||||
return
|
||||
|
||||
# Test of further (unparsed arguments). Any other
|
||||
# arguments are an error or help, so just run help
|
||||
@ -493,17 +497,18 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
# -> Notes: [1] (cf. EOF).
|
||||
else if test -n "$__sp_remaining_args"
|
||||
command spack env deactivate -h
|
||||
return
|
||||
else
|
||||
# no args: source the output of the command
|
||||
set -l sp_env_cmd "command spack $sp_flags env deactivate --fish"
|
||||
capture_all $sp_env_cmd __sp_stat __sp_stdout __sp_stderr
|
||||
eval $__sp_stdout
|
||||
if test $__sp_stat -ne 0
|
||||
if test -n "$__sp_stderr"
|
||||
echo -s \n$__sp_stderr 1>&2 # current fish bug: handle stderr manually
|
||||
end
|
||||
return 1
|
||||
return $__sp_stat
|
||||
end
|
||||
eval $__sp_stdout
|
||||
end
|
||||
|
||||
case "*"
|
||||
@ -512,8 +517,10 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
# string input!)
|
||||
if test -n "$__sp_remaining_args"
|
||||
command spack env $sp_arg $__sp_remaining_args
|
||||
return
|
||||
else
|
||||
command spack env $sp_arg
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -531,17 +538,18 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
if check_env_activate_flags $_a
|
||||
# no args or args contain -h/--help, --sh, or --csh: just execute
|
||||
command spack $sp_flags $sp_subcommand $__sp_remaining_args
|
||||
return
|
||||
else
|
||||
# actual call to activate: source the output
|
||||
set -l sp_env_cmd "command spack $sp_flags $sp_subcommand --fish $__sp_remaining_args"
|
||||
capture_all $sp_env_cmd __sp_stat __sp_stdout __sp_stderr
|
||||
eval $__sp_stdout
|
||||
if test $__sp_stat -ne 0
|
||||
if test -n "$__sp_stderr"
|
||||
echo -s \n$__sp_stderr 1>&2 # current fish bug: handle stderr manually
|
||||
end
|
||||
return 1
|
||||
return $__sp_stat
|
||||
end
|
||||
eval $__sp_stdout
|
||||
end
|
||||
|
||||
|
||||
@ -549,10 +557,8 @@ function spack_runner -d "Runner function for the `spack` wrapper"
|
||||
|
||||
case "*"
|
||||
command spack $argv
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user