summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-12-23 13:45:06 -0800
committerGreg Becker <becker33@llnl.gov>2022-01-12 06:14:18 -0800
commita18a0e7a47ca20c9745e2dfc12f7dbc1f47253b1 (patch)
treebc92d5c0ad393673b964044bd6032b0bba335a4c /share
parent106ae7abe64f021bd151db65f76093c1f9298a78 (diff)
downloadspack-a18a0e7a47ca20c9745e2dfc12f7dbc1f47253b1.tar.gz
spack-a18a0e7a47ca20c9745e2dfc12f7dbc1f47253b1.tar.bz2
spack-a18a0e7a47ca20c9745e2dfc12f7dbc1f47253b1.tar.xz
spack-a18a0e7a47ca20c9745e2dfc12f7dbc1f47253b1.zip
commands: add `spack pkg source` and `spack pkg hash`
To make it easier to see how package hashes change and how they are computed, add two commands: * `spack pkg source <spec>`: dumps source code for a package to the terminal * `spack pkg source --canonical <spec>`: dumps canonicalized source code for a package to the terminal. It strips comments, directives, and known-unused multimethods from the package. It is used to generate package hashes. * `spack pkg hash <spec>`: This gives the package hash for a particular spec. It is generated from the canonical source code for the spec. - [x] `add spack pkg source` and `spack pkg hash` - [x] add tests - [x] fix bug in multimethod resolution with boolean `@when` values Co-authored-by: Greg Becker <becker33@llnl.gov>
Diffstat (limited to 'share')
-rwxr-xr-xshare/spack/spack-completion.bash20
1 files changed, 19 insertions, 1 deletions
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash
index 08ea6751f3..65866a5099 100755
--- a/share/spack/spack-completion.bash
+++ b/share/spack/spack-completion.bash
@@ -1444,7 +1444,7 @@ _spack_pkg() {
then
SPACK_COMPREPLY="-h --help"
else
- SPACK_COMPREPLY="add list diff added changed removed"
+ SPACK_COMPREPLY="add list diff added changed removed source hash"
fi
}
@@ -1502,6 +1502,24 @@ _spack_pkg_removed() {
fi
}
+_spack_pkg_source() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -c --canonical"
+ else
+ _all_packages
+ fi
+}
+
+_spack_pkg_hash() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help"
+ else
+ _all_packages
+ fi
+}
+
_spack_providers() {
if $list_options
then