Skip to content
Snippets Groups Projects
Unverified Commit 34220077 authored by Adam J. Stewart's avatar Adam J. Stewart Committed by GitHub
Browse files

spack extensions prints list of extendable packages (#14473)

* spack extensions prints list of extendable packages

* Update tab completion scripts
parent 9f89dce5
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import argparse
import sys
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
......@@ -21,6 +22,8 @@
def setup_parser(subparser):
subparser.epilog = 'If called without argument returns ' \
'the list of all valid extendable packages'
arguments.add_common_arguments(subparser, ['long', 'very_long'])
subparser.add_argument('-d', '--deps', action='store_true',
help='output dependencies along with found specs')
......@@ -42,7 +45,19 @@ def setup_parser(subparser):
def extensions(parser, args):
if not args.spec:
tty.die("extensions requires a package spec.")
# If called without arguments, list all the extendable packages
isatty = sys.stdout.isatty()
if isatty:
tty.info('Extendable packages:')
extendable_pkgs = []
for name in spack.repo.all_package_names():
pkg = spack.repo.get(name)
if pkg.extendable:
extendable_pkgs.append(name)
colify(extendable_pkgs, indent=4)
return
# Checks
spec = cmd.parse_specs(args.spec)
......
......@@ -69,6 +69,11 @@ def check_output(ni, na):
check_output(1, 1)
def test_extensions_no_arguments(mock_packages):
out = extensions()
assert 'python' in out
def test_extensions_raises_if_not_extendable(mock_packages):
with pytest.raises(SpackCommandError):
extensions("flake8")
......
......@@ -226,7 +226,7 @@ _config_sections() {
_extensions() {
if [[ -z "${SPACK_EXTENSIONS:-}" ]]
then
SPACK_EXTENSIONS="aspell go-bootstrap go icedtea jdk kim-api lua matlab mofem-cephas octave openjdk perl python r ruby rust tcl yorick"
SPACK_EXTENSIONS="$(spack extensions)"
fi
SPACK_COMPREPLY="$SPACK_EXTENSIONS"
}
......
......@@ -226,7 +226,7 @@ _config_sections() {
_extensions() {
if [[ -z "${SPACK_EXTENSIONS:-}" ]]
then
SPACK_EXTENSIONS="aspell go-bootstrap go icedtea jdk kim-api lua matlab mofem-cephas octave openjdk perl python r ruby rust tcl yorick"
SPACK_EXTENSIONS="$(spack extensions)"
fi
SPACK_COMPREPLY="$SPACK_EXTENSIONS"
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment