diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2022-01-17 09:59:40 -0800 |
---|---|---|
committer | Greg Becker <becker33@llnl.gov> | 2022-02-16 10:17:18 -0800 |
commit | a2b8e0c3e9b4b2a9f18f14c0cec1dd99b598d1c7 (patch) | |
tree | 2f8109f2cd9f39084a8df5492fff7262344f9b96 /share | |
parent | f155de7462d7863fa9b89e4303f37c0edafa8125 (diff) | |
download | spack-a2b8e0c3e9b4b2a9f18f14c0cec1dd99b598d1c7.tar.gz spack-a2b8e0c3e9b4b2a9f18f14c0cec1dd99b598d1c7.tar.bz2 spack-a2b8e0c3e9b4b2a9f18f14c0cec1dd99b598d1c7.tar.xz spack-a2b8e0c3e9b4b2a9f18f14c0cec1dd99b598d1c7.zip |
commands: refactor `--reuse` handling to use config
`--reuse` was previously handled individually by each command that
needed it. We are growing more concretization options, and they'll
need their own section for commands that support them.
Now there are two concretization options:
* `--reuse`: Attempt to reuse packages from installs and buildcaches.
* `--fresh`: Opposite of reuse -- traditional spack install.
To handle thes, this PR adds a `ConfigSetAction` for `argparse`, so
that you can write argparse code like this:
```
subgroup.add_argument(
'--reuse', action=ConfigSetAction, dest="concretizer:reuse",
const=True, default=None,
help='reuse installed dependencies/buildcaches when possible'
)
```
With this, you don't need to add logic to pull the argument out and
handle it; the `ConfigSetAction` just does it for you. This can probably
be used to clean up some other commands later, as well.
Code that was previously passing `reuse=True` around everywhere has
been refactored to use config, and config is set from the CLI using
a new `add_concretizer_args()` function in `spack.cmd.common.arguments`.
- [x] Add `ConfigSetAction` to simplify concretizer config on the CLI
- [x] Refactor code so that it does not pass `reuse=True` to every function.
- [x] Refactor commands to use `add_concretizer_args()` and to pass
concretizer config using the config system.
Diffstat (limited to 'share')
-rwxr-xr-x | share/spack/spack-completion.bash | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index a5b3dcb33e..fffc7e4935 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -709,7 +709,7 @@ _spack_compilers() { } _spack_concretize() { - SPACK_COMPREPLY="-h --help --reuse -f --force --test" + SPACK_COMPREPLY="-h --help -f --force --test -U --fresh --reuse" } _spack_config() { @@ -870,7 +870,7 @@ _spack_deprecate() { _spack_dev_build() { if $list_options then - SPACK_COMPREPLY="-h --help -j --jobs --reuse -d --source-path -i --ignore-dependencies -n --no-checksum --deprecated --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty" + SPACK_COMPREPLY="-h --help -j --jobs -d --source-path -i --ignore-dependencies -n --no-checksum --deprecated --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty -U --fresh --reuse" else _all_packages fi @@ -1166,7 +1166,7 @@ _spack_info() { _spack_install() { if $list_options then - SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --reuse --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --monitor --monitor-save-local --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix --include-build-deps --no-check-signature --require-full-hash-match --show-log-on-error --source -n --no-checksum --deprecated -v --verbose --fake --only-concrete --no-add -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all" + SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --monitor --monitor-save-local --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix --include-build-deps --no-check-signature --require-full-hash-match --show-log-on-error --source -n --no-checksum --deprecated -v --verbose --fake --only-concrete --no-add -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all -U --fresh --reuse" else _all_packages fi @@ -1652,7 +1652,7 @@ _spack_restage() { _spack_solve() { if $list_options then - SPACK_COMPREPLY="-h --help --show --models -l --long -L --very-long -I --install-status --reuse -y --yaml -j --json -c --cover -N --namespaces -t --types --timers --stats" + SPACK_COMPREPLY="-h --help --show --models -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces -t --types --timers --stats -U --fresh --reuse" else _all_packages fi @@ -1661,7 +1661,7 @@ _spack_solve() { _spack_spec() { if $list_options then - SPACK_COMPREPLY="-h --help -l --long -L --very-long -I --install-status --reuse -y --yaml -j --json -c --cover -N --namespaces --hash-type -t --types" + SPACK_COMPREPLY="-h --help -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces --hash-type -t --types -U --fresh --reuse" else _all_packages fi |