|
|
- #!/usr/bin/env python
-
- # ZIP one file as "tendermint" into a ZIP like tendermint_VERSION_OS_ARCH.zip
- # Use environment variables CIRCLE_TAG, GOOS and GOARCH for easy input parameters.
- # Optimized for CircleCI
-
- import os
- import argparse
- import zipfile
- import hashlib
-
-
- BLOCKSIZE = 65536
-
-
- def zip_asset(file,destination,arcname,version,goos,goarch):
- filename = os.path.basename(file)
- output = "{0}/{1}_{2}_{3}_{4}.zip".format(destination,arcname,version,goos,goarch)
-
- with zipfile.ZipFile(output,'w') as f:
- f.write(filename=file,arcname=arcname)
- f.comment=filename
- return output
-
-
- if __name__ == "__main__":
- parser = argparse.ArgumentParser()
- parser.add_argument("--file", default="build/tendermint_{0}_{1}".format(os.environ.get('GOOS'),os.environ.get('GOARCH')), help="File to zip")
- parser.add_argument("--destination", default="build", help="Destination folder for files")
- parser.add_argument("--version", default=os.environ.get('CIRCLE_TAG'), help="Version number for binary, e.g.: v1.0.0")
- parser.add_argument("--goos", default=os.environ.get('GOOS'), help="GOOS parameter")
- parser.add_argument("--goarch", default=os.environ.get('GOARCH'), help="GOARCH parameter")
- args = parser.parse_args()
-
- if args.version is None:
- raise parser.error("argument --version is required")
- if args.goos is None:
- raise parser.error("argument --goos is required")
- if args.goarch is None:
- raise parser.error("argument --goarch is required")
-
- file = zip_asset(args.file,args.destination,"tendermint",args.version,args.goos,args.goarch)
- print(file)
-
|