diff options
-rwxr-xr-x | bin/swift-ring-builder | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/bin/swift-ring-builder b/bin/swift-ring-builder index 4f8517995..f89b47441 100755 --- a/bin/swift-ring-builder +++ b/bin/swift-ring-builder @@ -16,9 +16,22 @@ import sys +import traceback -from swift.cli.ringbuilder import main +# We exit code 1 on WARNING statuses, 2 on ERROR. This means we need +# to handle any uncaught exceptions by printing the usual backtrace, +# but then exiting 2 (not 1 as is usual for a python +# exception). + + +def exit_with_status_two(tp, val, tb): + traceback.print_exception(tp, val, tb) + sys.exit(2) +sys.excepthook = exit_with_status_two + +from swift.cli.ringbuilder import main + if __name__ == "__main__": sys.exit(main()) |