diff --git a/build.py b/build.py index a969153..a6ab5b5 100644 --- a/build.py +++ b/build.py @@ -29,7 +29,7 @@ def write_main(zipdir): file = open(zipdir + "/__main__.py", "w+") file.write("import src.main\n") - file.write("src.main.main()") + file.write("src.main.wait_main()") file.close() diff --git a/src/main.py b/src/main.py index 8df3b19..39449d1 100755 --- a/src/main.py +++ b/src/main.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: LGPL-2.1-only # Copyright 2021 Jookia +import atexit import os import sys @@ -25,8 +26,24 @@ if not ast: return 1 interp.run_ast(ast) - sys.exit(0) + return 0 + + +def nowait_main(): + code = main() + sys.exit(code) + + +def unexpected_exit(): + input("Unexpected exit. Press any key to continue.") + +def wait_main(): + atexit.register(unexpected_exit) + code = main() + atexit.unregister(unexpected_exit) + input("Exited with code %s. Press any key to continue." % (code)) + sys.exit(code) if __name__ == "__main__": - main() + nowait_main()