if __name__ == "__main__":
try:
retval = main(sys.argv)
except KeyboardInterrupt:
sys.exit(1)
except SystemExit:
raise
except:
import traceback, logging
if not log.handlers and not logging.root.handlers:
logging.basicConfig()
skip_it = False
exc_info = sys.exc_info()
if hasattr(exc_info[0], "__name__"):
exc_class, exc, tb = exc_info
if isinstance(exc, IOError) and exc.args[0] == 32:
# Skip 'IOError: [Errno 32] Broken pipe': often a cancelling of `less`.
skip_it = True
if not skip_it:
tb_path, tb_lineno, tb_func = traceback.extract_tb(tb)[-1][:3]
log.error("%s (%s:%s in %s)", exc_info[1], tb_path,
tb_lineno, tb_func)
else: # string exception
log.error(exc_info[0])
if not skip_it:
if log.isEnabledFor(logging.DEBUG):
print()
traceback.print_exception(*exc_info)
sys.exit(1)
else:
sys.exit(retval)
Diff to Previous Revision
--- revision 4 2010-06-13 03:56:30
+++ revision 5 2010-09-11 05:46:59
@@ -24,7 +24,7 @@
log.error(exc_info[0])
if not skip_it:
if log.isEnabledFor(logging.DEBUG):
- print
+ print()
traceback.print_exception(*exc_info)
sys.exit(1)
else: