From e6c6ab64b890cc6039c3a551520738aeb5d48081 Mon Sep 17 00:00:00 2001 From: Peter Josef Scheibel Date: Fri, 18 May 2018 15:22:55 -0700 Subject: env: rename 'spack env' command to 'spack build-env' --- lib/spack/spack/cmd/build_env.py | 59 +++++++++++++++++++++++++++++++++++ lib/spack/spack/cmd/env.py | 59 ----------------------------------- lib/spack/spack/test/cmd/build_env.py | 29 +++++++++++++++++ lib/spack/spack/test/cmd/env.py | 29 ----------------- 4 files changed, 88 insertions(+), 88 deletions(-) create mode 100644 lib/spack/spack/cmd/build_env.py delete mode 100644 lib/spack/spack/cmd/env.py create mode 100644 lib/spack/spack/test/cmd/build_env.py delete mode 100644 lib/spack/spack/test/cmd/env.py (limited to 'lib') diff --git a/lib/spack/spack/cmd/build_env.py b/lib/spack/spack/cmd/build_env.py new file mode 100644 index 0000000000..cb87bbc620 --- /dev/null +++ b/lib/spack/spack/cmd/build_env.py @@ -0,0 +1,59 @@ +# Copyright 2013-2018 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) + +from __future__ import print_function + +import argparse +import os + +import llnl.util.tty as tty +import spack.build_environment as build_environment +import spack.cmd +import spack.cmd.common.arguments as arguments + +description = "show install environment for a spec, and run commands" +section = "build" +level = "long" + + +def setup_parser(subparser): + arguments.add_common_arguments(subparser, ['clean', 'dirty']) + subparser.add_argument( + 'spec', nargs=argparse.REMAINDER, + help="specs of package environment to emulate") + + +def build_env(parser, args): + if not args.spec: + tty.die("spack build-env requires a spec.") + + # Specs may have spaces in them, so if they do, require that the + # caller put a '--' between the spec and the command to be + # executed. If there is no '--', assume that the spec is the + # first argument. + sep = '--' + if sep in args.spec: + s = args.spec.index(sep) + spec = args.spec[:s] + cmd = args.spec[s + 1:] + else: + spec = args.spec[0] + cmd = args.spec[1:] + + specs = spack.cmd.parse_specs(spec, concretize=True) + if len(specs) > 1: + tty.die("spack build-env only takes one spec.") + spec = specs[0] + + build_environment.setup_package(spec.package, args.dirty) + + if not cmd: + # If no command act like the "env" command and print out env vars. + for key, val in os.environ.items(): + print("%s=%s" % (key, val)) + + else: + # Otherwise execute the command with the new environment + os.execvp(cmd[0], cmd) diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py deleted file mode 100644 index 94be7f03fb..0000000000 --- a/lib/spack/spack/cmd/env.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2013-2018 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) - -from __future__ import print_function - -import argparse -import os - -import llnl.util.tty as tty -import spack.build_environment as build_env -import spack.cmd -import spack.cmd.common.arguments as arguments - -description = "show install environment for a spec, and run commands" -section = "build" -level = "long" - - -def setup_parser(subparser): - arguments.add_common_arguments(subparser, ['clean', 'dirty']) - subparser.add_argument( - 'spec', nargs=argparse.REMAINDER, - help="specs of package environment to emulate") - - -def env(parser, args): - if not args.spec: - tty.die("spack env requires a spec.") - - # Specs may have spaces in them, so if they do, require that the - # caller put a '--' between the spec and the command to be - # executed. If there is no '--', assume that the spec is the - # first argument. - sep = '--' - if sep in args.spec: - s = args.spec.index(sep) - spec = args.spec[:s] - cmd = args.spec[s + 1:] - else: - spec = args.spec[0] - cmd = args.spec[1:] - - specs = spack.cmd.parse_specs(spec, concretize=True) - if len(specs) > 1: - tty.die("spack env only takes one spec.") - spec = specs[0] - - build_env.setup_package(spec.package, args.dirty) - - if not cmd: - # If no command act like the "env" command and print out env vars. - for key, val in os.environ.items(): - print("%s=%s" % (key, val)) - - else: - # Otherwise execute the command with the new environment - os.execvp(cmd[0], cmd) diff --git a/lib/spack/spack/test/cmd/build_env.py b/lib/spack/spack/test/cmd/build_env.py new file mode 100644 index 0000000000..a84d2b8ff5 --- /dev/null +++ b/lib/spack/spack/test/cmd/build_env.py @@ -0,0 +1,29 @@ +# Copyright 2013-2018 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 pytest + +from spack.main import SpackCommand, SpackCommandError + +info = SpackCommand('build-env') + + +@pytest.mark.parametrize('pkg', [ + ('zlib',), + ('zlib', '--') +]) +@pytest.mark.usefixtures('config') +def test_it_just_runs(pkg): + info(*pkg) + + +@pytest.mark.parametrize('pkg,error_cls', [ + ('zlib libszip', SpackCommandError), + ('', IndexError) +]) +@pytest.mark.usefixtures('config') +def test_it_just_fails(pkg, error_cls): + with pytest.raises(error_cls): + info(pkg) diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py deleted file mode 100644 index 0a1b1714dd..0000000000 --- a/lib/spack/spack/test/cmd/env.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2013-2018 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 pytest - -from spack.main import SpackCommand, SpackCommandError - -info = SpackCommand('env') - - -@pytest.mark.parametrize('pkg', [ - ('zlib',), - ('zlib', '--') -]) -@pytest.mark.usefixtures('config') -def test_it_just_runs(pkg): - info(*pkg) - - -@pytest.mark.parametrize('pkg,error_cls', [ - ('zlib libszip', SpackCommandError), - ('', IndexError) -]) -@pytest.mark.usefixtures('config') -def test_it_just_fails(pkg, error_cls): - with pytest.raises(error_cls): - info(pkg) -- cgit v1.2.3-70-g09d2