#!/usr/bin/env python
|
|
|
|
# Create SHA256 summaries from all ZIP files in a folder
|
|
# Optimized for CircleCI
|
|
|
|
import re
|
|
import os
|
|
import argparse
|
|
import zipfile
|
|
import hashlib
|
|
|
|
|
|
BLOCKSIZE = 65536
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--folder", default="/tmp/workspace", help="Folder to look for, for ZIP files")
|
|
parser.add_argument("--shafile", default="/tmp/workspace/SHA256SUMS", help="SHA256 summaries File")
|
|
args = parser.parse_args()
|
|
|
|
for filename in os.listdir(args.folder):
|
|
if re.search('\.zip$',filename) is None:
|
|
continue
|
|
if not os.path.isfile(os.path.join(args.folder, filename)):
|
|
continue
|
|
with open(args.shafile,'a+') as shafile:
|
|
hasher = hashlib.sha256()
|
|
with open(os.path.join(args.folder, filename),'r') as f:
|
|
buf = f.read(BLOCKSIZE)
|
|
while len(buf) > 0:
|
|
hasher.update(buf)
|
|
buf = f.read(BLOCKSIZE)
|
|
shafile.write("{0} {1}\n".format(hasher.hexdigest(),filename))
|
|
|