github.com/okex/exchain@v1.8.0/libs/tendermint/scripts/release_management/zip-file.py (about) 1 #!/usr/bin/env python 2 3 # ZIP one file as "tendermint" into a ZIP like tendermint_VERSION_OS_ARCH.zip 4 # Use environment variables CIRCLE_TAG, GOOS and GOARCH for easy input parameters. 5 # Optimized for CircleCI 6 7 import os 8 import argparse 9 import zipfile 10 import hashlib 11 12 13 BLOCKSIZE = 65536 14 15 16 def zip_asset(file,destination,arcname,version,goos,goarch): 17 filename = os.path.basename(file) 18 output = "{0}/{1}_{2}_{3}_{4}.zip".format(destination,arcname,version,goos,goarch) 19 20 with zipfile.ZipFile(output,'w') as f: 21 f.write(filename=file,arcname=arcname) 22 f.comment=filename 23 return output 24 25 26 if __name__ == "__main__": 27 parser = argparse.ArgumentParser() 28 parser.add_argument("--file", default="build/tendermint_{0}_{1}".format(os.environ.get('GOOS'),os.environ.get('GOARCH')), help="File to zip") 29 parser.add_argument("--destination", default="build", help="Destination folder for files") 30 parser.add_argument("--version", default=os.environ.get('CIRCLE_TAG'), help="Version number for binary, e.g.: v1.0.0") 31 parser.add_argument("--goos", default=os.environ.get('GOOS'), help="GOOS parameter") 32 parser.add_argument("--goarch", default=os.environ.get('GOARCH'), help="GOARCH parameter") 33 args = parser.parse_args() 34 35 if args.version is None: 36 raise parser.error("argument --version is required") 37 if args.goos is None: 38 raise parser.error("argument --goos is required") 39 if args.goarch is None: 40 raise parser.error("argument --goarch is required") 41 42 file = zip_asset(args.file,args.destination,"tendermint",args.version,args.goos,args.goarch) 43 print(file) 44