summaryrefslogtreecommitdiff
path: root/lib/spack/spack/cmd/deactivate.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/spack/cmd/deactivate.py')
-rw-r--r--lib/spack/spack/cmd/deactivate.py96
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)