diff --git a/action.yml b/action.yml index 02f935e..9d14593 100644 --- a/action.yml +++ b/action.yml @@ -31,7 +31,7 @@ inputs: required: false default: false print_hash: - description: Show hash values of files uploaded + description: Show hash values of files to be uploaded required: false default: false branding: diff --git a/print-hash.py b/print-hash.py new file mode 100755 index 0000000..52d698e --- /dev/null +++ b/print-hash.py @@ -0,0 +1,24 @@ +import os +import hashlib + +sha256 = hashlib.sha256() +md5 = hashlib.md5() +blake2_256 = hashlib.blake2b(digest_size=256 // 8) + +file_list = os.listdir(os.path.abspath(os.getenv("INPUT_PACKAGES_DIR"))) + +for file in file_list: + print(file) + print("") + + with open(os.path.abspath(os.path.join(os.getenv("INPUT_PACKAGES_DIR"), file)), "rb") as f: + content = f.read() + + sha256.update(content) + md5.update(content) + blake2_256.update(content) + + print(f"SHA256: {sha256.hexdigest()}") + print(f"MD5: {md5.hexdigest()}") + print(f"BLAKE2-256: {blake2_256.hexdigest()}") + print("") diff --git a/twine-upload.sh b/twine-upload.sh index d45b734..5b5ea75 100755 --- a/twine-upload.sh +++ b/twine-upload.sh @@ -44,33 +44,11 @@ if [[ ${INPUT_VERBOSE,,} != "false" ]] ; then TWINE_EXTRA_ARGS="--verbose $TWINE_EXTRA_ARGS" fi +if [[ ${INPUT_PRINT_HASH,,} || ${INPUT_VERBOSE,,} != "false" ]] ; then + python ./print-hash.py +fi + TWINE_USERNAME="$INPUT_USER" \ TWINE_PASSWORD="$INPUT_PASSWORD" \ TWINE_REPOSITORY_URL="$INPUT_REPOSITORY_URL" \ exec twine upload ${TWINE_EXTRA_ARGS} ${INPUT_PACKAGES_DIR%%/}/* - -if [[ ${INPUT_PRINT_HASH,,} != "false" ]] ; then - cat > ./print_hash.py << EOF -import os -import hashlib -sha256 = hashlib.sha256() -md5 = hashlib.md5() -blake2_256 = hashlib.blake2b(digest_size=256 // 8) -file_list = os.listdir(os.path.abspath("${INPUT_PACKAGES_DIR%%/}")) -for i in file_list: - print(i) - print("") - file = open(os.path.abspath(os.path.join("${INPUT_PACKAGES_DIR%%/}", i)), "rb") - content = file.read() - file.close() - sha256.update(content) - md5.update(content) - blake2_256.update(content) - print(f"SHA256: {sha256.hexdigest()}") - print(f"MD5: {md5.hexdigest()}") - print(f"BLAKE2-256: {blake2_256.hexdigest()}") - print("") -EOF - python ./print_hash.py - rm ./print_hash.py -fi \ No newline at end of file