#!/usr/bin/env python3 import glob import os from zipfile import ZipFile dir_path = os.path.dirname(os.path.realpath(__file__)) def get_version(): path = os.path.join( dir_path, 'theanarchistlibrary_store', '__init__.py', ) with open(path, 'r') as file: lines = file.read().split('\n') for line in lines: line_ = line.lower().strip() if line_.startswith('version = '): parts = line_[10:].lstrip('(').rstrip(')').split(',') numbers = [int(part) for part in parts] return '{}.{}.{}'.format(*numbers) def release(): version = get_version() tgt_fn = f'theanarchistlibrary_store_v{version}.zip' tgt_path = os.path.join(dir_path, 'releases', tgt_fn) src_glob = os.path.join( dir_path, 'theanarchistlibrary_store', '**', ) with ZipFile(tgt_path, 'w') as zip: for path in glob.glob(src_glob, recursive=True): arcname = path[(len(src_glob) - 2):] if arcname: zip.write(path, arcname=arcname) if __name__ == '__main__': release()