# SPDX-License-Identifier: LGPL-2.1 # Copyright 2022 Jookia <contact@jookia.org> import shutil import os import os.path import zipapp def clean_dir(zipdir): if os.path.exists(zipdir): shutil.rmtree(zipdir) def clean_pyz(filename): if os.path.exists(filename): os.remove(filename) def create_dir(zipdir): os.mkdir(zipdir) def copy_src(zipdir): ignored = shutil.ignore_patterns("__pycache__", ".*") shutil.copytree("src", zipdir + "/src", ignore=ignored) def write_main(zipdir): file = open(zipdir + "/__main__.py", "w+") file.write("import src.main\n") file.write("src.main.wait_main()") file.close() def make_zip(zipdir, filename): interp = "/usr/bin/env python3" zipapp.create_archive(zipdir, filename, interpreter=interp, compressed=True) def main(): zipdir = "zip" filename = "NewLang.pyz" clean_dir(zipdir) clean_pyz(filename) create_dir(zipdir) copy_src(zipdir) write_main(zipdir) make_zip(zipdir, filename) clean_dir(zipdir) if __name__ == "__main__": main()