exit = 2 if ctrl-c is pressed, cleanup

Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
Nico Schottelius 2013-08-07 18:49:47 +02:00
parent c793825edb
commit 0eb67a00f5

View file

@ -116,10 +116,19 @@ def commandline():
# Work around python 3.3 bug: # Work around python 3.3 bug:
# http://bugs.python.org/issue16308 # http://bugs.python.org/issue16308
# http://bugs.python.org/issue9253 # http://bugs.python.org/issue9253
# FIXME: catching AttributeError also hides
# real problems.. try a different way
# FIXME: we always print main help, not
# the help of the actual parser being used!
try: try:
args.func(args) getattr(args, "func")
except AttributeError: except AttributeError:
parser['main'].print_help() parser['main'].print_help()
sys.exit(0)
args.func(args)
#def install(args): #def install(args):
# configinstall(args, mode=cdist.install.Install) # configinstall(args, mode=cdist.install.Install)
@ -158,12 +167,10 @@ if __name__ == "__main__":
commandline() commandline()
except KeyboardInterrupt: except KeyboardInterrupt:
pass exit_code = 2
except cdist.Error as e: except cdist.Error as e:
log.error(e) log.error(e)
exit_code = 1 exit_code = 1
# Determine exit code by return value of function
sys.exit(exit_code) sys.exit(exit_code)