Add options to stage to make it just print out stage dir.
This commit is contained in:
parent
0740c576a7
commit
5a3803de39
@ -23,6 +23,9 @@
|
|||||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
import argparse
|
import argparse
|
||||||
|
import os
|
||||||
|
|
||||||
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.cmd
|
import spack.cmd
|
||||||
@ -33,18 +36,45 @@ def setup_parser(subparser):
|
|||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'-n', '--no-checksum', action='store_true', dest='no_checksum',
|
'-n', '--no-checksum', action='store_true', dest='no_checksum',
|
||||||
help="Do not check downloaded packages against 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(
|
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):
|
def stage(parser, args):
|
||||||
if not args.packages:
|
if not args.specs:
|
||||||
tty.die("stage requires at least one package argument")
|
tty.die("stage requires at least one package argument")
|
||||||
|
|
||||||
if args.no_checksum:
|
if args.no_checksum:
|
||||||
spack.do_checksum = False
|
spack.do_checksum = False
|
||||||
|
|
||||||
specs = spack.cmd.parse_specs(args.packages, concretize=True)
|
specs = spack.cmd.parse_specs(args.specs, concretize=True)
|
||||||
for spec in specs:
|
|
||||||
package = spack.db.get(spec)
|
if args.print_dir:
|
||||||
package.do_stage()
|
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()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user