Skip to content
Snippets Groups Projects
Commit 5a3803de authored by Todd Gamblin's avatar Todd Gamblin
Browse files

Add options to stage to make it just print out stage dir.

parent 0740c576
Branches
Tags
No related merge requests found
......@@ -23,6 +23,9 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import argparse
import os
import llnl.util.tty as tty
import spack
import spack.cmd
......@@ -33,18 +36,45 @@ def setup_parser(subparser):
subparser.add_argument(
'-n', '--no-checksum', action='store_true', dest='no_checksum',
help="Do not check downloaded packages against checksum")
dir_parser = subparser.add_mutually_exclusive_group()
dir_parser.add_argument(
'-d', '--stage-dir', action='store_const', dest='print_dir',
const='stage', help="Prints out the stage directory for a spec.")
dir_parser.add_argument(
'-b', '--build-dir', action='store_const', dest='print_dir',
const='build', help="Prints out the expanded archive path for a spec.")
subparser.add_argument(
'packages', nargs=argparse.REMAINDER, help="specs of packages to stage")
'specs', nargs=argparse.REMAINDER, help="specs of packages to stage")
def stage(parser, args):
if not args.packages:
if not args.specs:
tty.die("stage requires at least one package argument")
if args.no_checksum:
spack.do_checksum = False
specs = spack.cmd.parse_specs(args.packages, concretize=True)
for spec in specs:
package = spack.db.get(spec)
package.do_stage()
specs = spack.cmd.parse_specs(args.specs, concretize=True)
if args.print_dir:
if len(specs) != 1:
tty.die("--stage-dir and --build-dir options only take one spec.")
spec = specs[0]
pkg = spack.db.get(spec)
if args.print_dir == 'stage':
print pkg.stage.path
elif args.print_dir == 'build':
if not os.listdir(pkg.stage.path):
tty.die("Stage directory is empty. Run this first:",
"spack stage " + " ".join(args.specs))
print pkg.stage.expanded_archive_path
else:
for spec in specs:
package = spack.db.get(spec)
package.do_stage()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment