diff options
Diffstat (limited to 'lib/spack/spack/cmd/deactivate.py')
-rw-r--r-- | lib/spack/spack/cmd/deactivate.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/lib/spack/spack/cmd/deactivate.py b/lib/spack/spack/cmd/deactivate.py deleted file mode 100644 index 2fa18fc2b1..0000000000 --- a/lib/spack/spack/cmd/deactivate.py +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import llnl.util.tty as tty - -import spack.cmd -import spack.cmd.common.arguments as arguments -import spack.environment as ev -import spack.graph -import spack.store -from spack.filesystem_view import YamlFilesystemView - -description = "deactivate a package extension" -section = "extensions" -level = "long" - - -def setup_parser(subparser): - subparser.add_argument( - "-f", - "--force", - action="store_true", - help="run deactivation even if spec is NOT currently activated", - ) - subparser.add_argument("-v", "--view", metavar="VIEW", type=str, help="the view to operate on") - subparser.add_argument( - "-a", - "--all", - action="store_true", - help="deactivate all extensions of an extendable package, or " - "deactivate an extension AND its dependencies", - ) - arguments.add_common_arguments(subparser, ["installed_spec"]) - - -def deactivate(parser, args): - - tty.warn( - "spack deactivate is deprecated in favor of " "environments and will be removed in v0.19.0" - ) - - specs = spack.cmd.parse_specs(args.spec) - if len(specs) != 1: - tty.die("deactivate requires one spec. %d given." % len(specs)) - - env = ev.active_environment() - spec = spack.cmd.disambiguate_spec(specs[0], env) - pkg = spec.package - - if args.view: - target = args.view - elif pkg.is_extension: - target = pkg.extendee_spec.prefix - elif pkg.extendable: - target = spec.prefix - - view = YamlFilesystemView(target, spack.store.layout) - - if args.all: - if pkg.extendable: - tty.msg("Deactivating all extensions of %s" % pkg.spec.short_spec) - ext_pkgs = spack.store.db.activated_extensions_for(spec, view.extensions_layout) - - for ext_pkg in ext_pkgs: - ext_pkg.spec.normalize() - if ext_pkg.is_activated(view): - ext_pkg.do_deactivate(view, force=True) - - elif pkg.is_extension: - if not args.force and not spec.package.is_activated(view): - tty.die("%s is not activated." % pkg.spec.short_spec) - - tty.msg("Deactivating %s and all dependencies." % pkg.spec.short_spec) - - nodes_in_topological_order = spack.graph.topological_sort(spec) - for espec in reversed(nodes_in_topological_order): - epkg = espec.package - if epkg.extends(pkg.extendee_spec): - if epkg.is_activated(view) or args.force: - epkg.do_deactivate(view, force=args.force) - - else: - tty.die("spack deactivate --all requires an extendable package " "or an extension.") - - else: - if not pkg.is_extension: - tty.die( - "spack deactivate requires an extension.", "Did you mean 'spack deactivate --all'?" - ) - - if not args.force and not spec.package.is_activated(view): - tty.die("Package %s is not activated." % spec.short_spec) - - spec.package.do_deactivate(view, force=args.force) |