Initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
bazel-*/
|
6
MODULE.bazel
Normal file
6
MODULE.bazel
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module(
|
||||||
|
name = "bazel_registry",
|
||||||
|
version = "0.0.0",
|
||||||
|
compatibility_level = 1,
|
||||||
|
)
|
||||||
|
|
3
bazel_registry.json
Normal file
3
bazel_registry.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"mirrors": []
|
||||||
|
}
|
34
integrity.py
Normal file
34
integrity.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import sys
|
||||||
|
import hashlib
|
||||||
|
import base64
|
||||||
|
from pathlib import Path
|
||||||
|
import requests
|
||||||
|
|
||||||
|
def file_hash(file_path: Path) -> str:
|
||||||
|
sha256_hash = hashlib.sha256()
|
||||||
|
with open(file_path, "rb") as file:
|
||||||
|
while True:
|
||||||
|
data = file.read(65536)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
sha256_hash.update(data)
|
||||||
|
return "sha256-" + base64.b64encode(sha256_hash.digest()).decode()
|
||||||
|
|
||||||
|
def url_hash(url: str) -> str:
|
||||||
|
sha256_hash = hashlib.sha256()
|
||||||
|
with requests.get(url, stream=True) as resp:
|
||||||
|
resp.raise_for_status()
|
||||||
|
while True:
|
||||||
|
data = resp.raw.read(65536)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
sha256_hash.update(data)
|
||||||
|
return "sha256-" + base64.b64encode(sha256_hash.digest()).decode()
|
||||||
|
|
||||||
|
if __name__ == "__main__" and len(sys.argv) > 1:
|
||||||
|
path = Path(sys.argv[1])
|
||||||
|
if path.exists():
|
||||||
|
print(file_hash(path))
|
||||||
|
else:
|
||||||
|
print(url_hash(sys.argv[1]))
|
||||||
|
|
Reference in New Issue
Block a user