summaryrefslogtreecommitdiff
path: root/support/scripts/pycompile.py
blob: fde711a42a2f899c3b27af94e530ba801a1bf2de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)