traceback.py 631 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/env python
  2. import sys,traceback,os
  3. sys.path.insert(0,'.')
  4. if 'TMUX' in os.environ: del os.environ['TMUX']
  5. os.environ['MMGEN_TRACEBACK'] = '1'
  6. tb_source = open(sys.argv[1])
  7. tb_file = open('my.err','w')
  8. try:
  9. sys.argv.pop(0)
  10. exec tb_source
  11. except SystemExit:
  12. # pass
  13. e = sys.exc_info()
  14. sys.exit(int(str(e[1])))
  15. except:
  16. l = traceback.format_exception(*sys.exc_info())
  17. exc = l.pop()
  18. def red(s): return '{e}[31;1m{}{e}[0m'.format(s,e='\033')
  19. def yellow(s): return '{e}[33;1m{}{e}[0m'.format(s,e='\033')
  20. sys.stdout.write('{}{}'.format(yellow(''.join(l)),red(exc)))
  21. traceback.print_exc(file=tb_file)
  22. sys.exit(1)