def entrypoint(argv=None):
argv = argv or sys.argv[1:]
logging.config.dictConfig(setup_logging())
distribution = pkg_resources.get_distribution('jenkins-epo')
logger.info("Starting jenkins-epo %s.", distribution.version)
logger.debug("Debug mode enabled")
# Import modules after logging is setup
from .cache import CACHE
from .main import main
from .settings import SETTINGS
try:
logger.debug("Executing %s.", ' '.join(argv))
main(argv)
logger.info("Done.")
except bdb.BdbQuit:
logger.info('Graceful exit from debugger.')
except Exception as e:
if SETTINGS.DEBUG:
logger.error("%s: %s", type(e), e)
post_mortem()
else:
logger.exception("Unhandled error:")
sys.exit(1)
except KeyboardInterrupt:
# Hide ^C in terminal
sys.stderr.write('\r')
if SETTINGS.DEBUG:
logger.warn("Dropping in post interrupt PDB!")
post_mortem()
else:
tb = traceback.format_tb(sys.exc_info()[-1])
tb = tb[-6:]
logger.warn("Interrupted at:\n%s", ''.join(tb).strip())
sys.exit(1)
finally:
CACHE.close()
sys.exit(0)
评论列表
文章目录