Allow commands to return error codes.
This commit is contained in:
parent
5d033fbd0a
commit
935eba2357
10
bin/spack
10
bin/spack
@ -103,7 +103,7 @@ if args.insecure:
|
|||||||
# Try to load the particular command asked for and run it
|
# Try to load the particular command asked for and run it
|
||||||
command = spack.cmd.get_command(args.command)
|
command = spack.cmd.get_command(args.command)
|
||||||
try:
|
try:
|
||||||
command(parser, args)
|
return_val = command(parser, args)
|
||||||
except SpackError, e:
|
except SpackError, e:
|
||||||
if spack.debug:
|
if spack.debug:
|
||||||
# In debug mode, raise with a full stack trace.
|
# In debug mode, raise with a full stack trace.
|
||||||
@ -116,3 +116,11 @@ except SpackError, e:
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
sys.stderr.write('\n')
|
sys.stderr.write('\n')
|
||||||
tty.die("Keyboard interrupt.")
|
tty.die("Keyboard interrupt.")
|
||||||
|
|
||||||
|
# Allow commands to return values if they want to exit with some ohter code.
|
||||||
|
if return_val is None:
|
||||||
|
sys.exit(0)
|
||||||
|
elif isinstance(return_val, int):
|
||||||
|
sys.exit(return_val)
|
||||||
|
else:
|
||||||
|
tty.die("Bad return value from command %s: %s" % (args.command, return_val))
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
description = "Generate graphs of package dependency relationships."
|
description = "Generate graphs of package dependency relationships."
|
||||||
|
|
||||||
def setup_parser(subparser):
|
def setup_parser(subparser):
|
||||||
|
setup_parser.parser = subparser
|
||||||
|
|
||||||
method = subparser.add_mutually_exclusive_group()
|
method = subparser.add_mutually_exclusive_group()
|
||||||
method.add_argument(
|
method.add_argument(
|
||||||
'--ascii', action='store_true',
|
'--ascii', action='store_true',
|
||||||
@ -50,6 +52,9 @@ def graph(parser, args):
|
|||||||
specs = spack.cmd.parse_specs(
|
specs = spack.cmd.parse_specs(
|
||||||
args.specs, normalize=True, concretize=args.concretize)
|
args.specs, normalize=True, concretize=args.concretize)
|
||||||
|
|
||||||
|
if not specs:
|
||||||
|
setup_parser.parser.print_help()
|
||||||
|
return 1
|
||||||
|
|
||||||
if args.dot: # Dot graph only if asked for.
|
if args.dot: # Dot graph only if asked for.
|
||||||
graph_dot(*specs)
|
graph_dot(*specs)
|
||||||
|
@ -41,6 +41,7 @@ def setup_parser(subparser):
|
|||||||
def md5(parser, args):
|
def md5(parser, args):
|
||||||
if not args.files:
|
if not args.files:
|
||||||
setup_parser.parser.print_help()
|
setup_parser.parser.print_help()
|
||||||
|
return 1
|
||||||
|
|
||||||
for f in args.files:
|
for f in args.files:
|
||||||
if not os.path.isfile(f):
|
if not os.path.isfile(f):
|
||||||
|
Loading…
Reference in New Issue
Block a user