diff --git a/build.py b/build.py new file mode 100644 index 0000000..3cb2f2a --- /dev/null +++ b/build.py @@ -0,0 +1,39 @@ +import os +import subprocess +from fnmatch import fnmatch +from zipfile import ZipFile, ZIP_DEFLATED + +ignore_patterns = [ + '*/__pycache__/*', + '*/.git/*', + '*/.github/*', + '*/.idea/*', + '*/venv/*', + '*/.gitignore', + '*/.gitattributes', +] + + +def zipdir(path, zip_file: ZipFile): + for root, dirs, files in os.walk(path): + for file in files: + if file != zip_file.filename and not any(fnmatch(os.path.join(root, file), pattern) for pattern in ignore_patterns): + zip_file.write(os.path.join(root, file)) + +# Get the branch name. +branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode('utf-8').strip() + +# Get the most recent tag. +tag = subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).decode('utf-8').strip() + +# Create a zip file of the current directory. + +zip_path = f'./build/io_scene_psk_psa-{branch}-{tag}.zip' + +# Check that the directory exists, if it doesn't, create it. +if not os.path.exists('./build'): + os.makedirs('./build') + +zipf = ZipFile(zip_path, 'w', ZIP_DEFLATED) +zipdir('.', zipf) +zipf.close()