diff options
author | Damien George <damien@micropython.org> | 2023-10-23 10:39:39 +1100 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2023-10-23 10:39:39 +1100 |
commit | bb4be837c3d439029c5c73928b0369ace8247525 (patch) | |
tree | fcb223d5b3b1da6f9391d9c616a6016e92036b5d /py/makeqstrdefs.py | |
parent | 91a3f183916e1514fbb8dc58ca5b77acc59d4346 (diff) | |
download | micropython-bb4be837c3d439029c5c73928b0369ace8247525.tar.gz micropython-bb4be837c3d439029c5c73928b0369ace8247525.zip |
py/makeqstrdefs.py: Print a nicer error when preprocessing stage fails.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/makeqstrdefs.py')
-rw-r--r-- | py/makeqstrdefs.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/py/makeqstrdefs.py b/py/makeqstrdefs.py index 64249f76ce..57200e069c 100644 --- a/py/makeqstrdefs.py +++ b/py/makeqstrdefs.py @@ -28,6 +28,10 @@ _MODE_MODULE = "module" _MODE_ROOT_POINTER = "root_pointer" +class PreprocessorError(Exception): + pass + + def is_c_source(fname): return os.path.splitext(fname)[1] in [".c"] @@ -57,7 +61,10 @@ def preprocess(): def pp(flags): def run(files): - return subprocess.check_output(args.pp + flags + files) + try: + return subprocess.check_output(args.pp + flags + files) + except subprocess.CalledProcessError as er: + raise PreprocessorError(str(er)) return run @@ -208,7 +215,12 @@ if __name__ == "__main__": for k, v in named_args.items(): setattr(args, k, v) - preprocess() + try: + preprocess() + except PreprocessorError as er: + print(er) + sys.exit(1) + sys.exit(0) args.mode = sys.argv[2] |