mirror of
https://github.com/encounter/ph.git
synced 2026-03-30 11:34:37 -07:00
30 lines
796 B
Python
Executable File
30 lines
796 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from pathlib import Path
|
|
import argparse
|
|
import hashlib
|
|
import sys
|
|
|
|
def eprint(*args, **kwargs):
|
|
print(*args, file=sys.stderr, **kwargs)
|
|
|
|
parser = argparse.ArgumentParser(description="Computes and verifies a SHA1 checksum")
|
|
parser.add_argument('file', help="Input file to verify")
|
|
parser.add_argument('-c', type=str, dest='checksum_file', required=False, help='Checksum file')
|
|
args = parser.parse_args()
|
|
|
|
file_path = Path(args.file)
|
|
checksum_path = Path(args.checksum_file)
|
|
|
|
with checksum_path.open('r') as file:
|
|
target_sha1, _ = file.readline().split(' ', 1)
|
|
|
|
with file_path.open('rb') as file:
|
|
file_sha1 = hashlib.sha1(file.read()).hexdigest()
|
|
|
|
if target_sha1 != file_sha1:
|
|
eprint(f"{file_path}: FAILED")
|
|
exit(1)
|
|
else:
|
|
eprint(f"{file_path}: OK")
|