From 7f8ad4c31bde1fdced73de9cf6abb95b6ec4d37d Mon Sep 17 00:00:00 2001 From: Trey Moen Date: Thu, 15 May 2025 16:52:58 -0700 Subject: [PATCH] validate inputs --- release/pack-raylib.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/release/pack-raylib.py b/release/pack-raylib.py index 883e6481f8..e42aaf539f 100755 --- a/release/pack-raylib.py +++ b/release/pack-raylib.py @@ -1,13 +1,30 @@ #!/usr/bin/env python3 +import importlib +import sys import zipapp from argparse import ArgumentParser from openpilot.common.basedir import BASEDIR +ENTRYPOINT = 'main' + if __name__ == '__main__': parser = ArgumentParser(prog='pack-raylib.py', description='Package a raylib UI into a portable executable.', epilog='comma.ai') parser.add_argument('module') parser.add_argument('-o', '--output', help='output file') args = parser.parse_args() - zipapp.create_archive(BASEDIR + '/openpilot', target=args.output, interpreter='/usr/bin/env python3', main=args.module) + + try: + mod = importlib.import_module(args.module) + except ModuleNotFoundError: + print(f'{args.module} not found, typo?') + sys.exit(1) + + if not hasattr(mod, ENTRYPOINT): + print(f'{args.module} does not have a {ENTRYPOINT}() function') + sys.exit(1) + + module_entrypoint = f'{args.module}:{ENTRYPOINT}' + + zipapp.create_archive(BASEDIR + '/openpilot', target=args.output, interpreter='/usr/bin/env python3', main=module_entrypoint)