summaryrefslogtreecommitdiff
path: root/share/spack/setup-env.sh
diff options
context:
space:
mode:
authorRené Widera <r.widera@hzdr.de>2018-04-24 22:43:32 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2018-04-24 13:43:32 -0700
commitcaa0c5c68723344e10f41aaac1ef82d0fba1cfb8 (patch)
tree296f42b20e7f591f439ab343c161aeb90d0d0a23 /share/spack/setup-env.sh
parentf7da156879328c7b25758db359d2235af9d245e3 (diff)
downloadspack-caa0c5c68723344e10f41aaac1ef82d0fba1cfb8.tar.gz
spack-caa0c5c68723344e10f41aaac1ef82d0fba1cfb8.tar.bz2
spack-caa0c5c68723344e10f41aaac1ef82d0fba1cfb8.tar.xz
spack-caa0c5c68723344e10f41aaac1ef82d0fba1cfb8.zip
environment shell: fix `spack load` (#7747)
Fix `spack load` with extended packe specifications those includes spaces. Solved by using perfectly parameter forwarding via temporary array. example: ``` $ spack install zlib $ spack install zlib cppflags='-O3 -march=native' $ spack install zlib cppflags='-O2 -march=native' $ spack find -d -L -f zlib ==> 3 installed packages. -- linux-linuxmint18-x86_64 / gcc@5.4.0 ------------------------- k5hg4kkxiutkfl6n53ogz5wnlbdrsdtf zlib@1.2.11%gcc mse2fyzdxciszdhiqi4b5kl6fxkps3fh zlib@1.2.11%gcc cppflags="-O2 -march=native" vrnvj2fikcbxqxrymctnlpmud7wbuahk zlib@1.2.11%gcc cppflags="-O3 -march=native" $ spack load zlib cppflags='-O3 -march=native' ==> Error: Unexpected token ['zlib', 'cppflags=-O3', '-march=native'] ```
Diffstat (limited to 'share/spack/setup-env.sh')
-rwxr-xr-xshare/spack/setup-env.sh12
1 files changed, 6 insertions, 6 deletions
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 688529491a..1dbc49c8a7 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -81,7 +81,7 @@ function spack {
fi
_sp_subcommand=$1; shift
- _sp_spec="$@"
+ _sp_spec=("$@")
# Filter out use and unuse. For any other commands, just run the
# command.
@@ -113,7 +113,7 @@ function spack {
shift
done
- _sp_spec="$@"
+ _sp_spec=("$@")
# Here the user has run use or unuse with a spec. Find a matching
# spec using 'spack module find', then use the appropriate module
@@ -121,19 +121,19 @@ function spack {
# If spack module command comes back with an error, do nothing.
case $_sp_subcommand in
"use")
- if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type dotkit $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type dotkit "${_sp_spec[@]}"); then
use $_sp_module_args $_sp_full_spec
fi ;;
"unuse")
- if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type dotkit $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type dotkit "${_sp_spec[@]}"); then
unuse $_sp_module_args $_sp_full_spec
fi ;;
"load")
- if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type tcl $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type tcl "${_sp_spec[@]}"); then
module load $_sp_module_args $_sp_full_spec
fi ;;
"unload")
- if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type tcl $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module loads --input-only $_sp_subcommand_args --module-type tcl "${_sp_spec[@]}"); then
module unload $_sp_module_args $_sp_full_spec
fi ;;
esac