From c06b9cbd9967552f9df0a1efb7ec555041144d4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de>
Date: Mon, 12 Aug 2024 10:24:26 +0200
Subject: [PATCH] feat(spec): support `--test {None,all,root} for input specs
---
lib/spack/spack/cmd/spec.py | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index 86e01e32948..d677596b6b6 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -71,6 +71,12 @@ def setup_parser(subparser):
subparser.add_argument(
"-t", "--types", action="store_true", default=False, help="show dependency types"
)
+ subparser.add_argument(
+ "--test",
+ default=None,
+ choices=["root", "all"],
+ help="concretize with test dependencies of only root packages or all packages",
+ )
arguments.add_common_arguments(subparser, ["specs"])
arguments.add_concretizer_args(subparser)
@@ -91,8 +97,16 @@ def spec(parser, args):
env = ev.active_environment()
if args.specs:
- concrete_specs = spack.cmd.parse_specs(args.specs, concretize=True)
+ if args.test == "all":
+ tests = True
+ elif args.test == "root":
+ tests = [spec.name for spec in spack.cmd.parse_specs(args.specs)]
+ else:
+ tests = False
+ concrete_specs = spack.cmd.parse_specs(args.specs, concretize=True, tests=tests)
elif env:
+ if args.test is not None:
+ tty.die("spack spec for environments does not support test dependency selection")
env.concretize()
concrete_specs = env.concrete_roots()
else:
--
GitLab