diff options
Diffstat (limited to 'support/scripts/pycompile.py')
-rw-r--r-- | support/scripts/pycompile.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/support/scripts/pycompile.py b/support/scripts/pycompile.py new file mode 100644 index 0000000000..fde711a42a --- /dev/null +++ b/support/scripts/pycompile.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +# Wrapper for python2 and python3 around compileall to raise exception +# when a python byte code generation failed. +# +# Inspired from: +# http://stackoverflow.com/questions/615632/how-to-detect-errors-from-compileall-compile-dir + +from __future__ import print_function +import sys +import py_compile +import compileall + +class ReportProblem: + def __nonzero__(self): + type, value, traceback = sys.exc_info() + if type is not None and issubclass(type, py_compile.PyCompileError): + print("Cannot compile %s" %value.file) + raise value + return 1 + +report_problem = ReportProblem() + +compileall.compile_dir(sys.argv[1], quiet=report_problem) |