|  | #! /usr/bin/env python3 | 
|  |  | 
|  | # Usage: scripts/qemu-stamp.py STRING1 STRING2... -- FILE1 FILE2... | 
|  | import hashlib | 
|  | import os | 
|  | import sys | 
|  |  | 
|  | sha = hashlib.sha1() | 
|  | is_file = False | 
|  | for arg in sys.argv[1:]: | 
|  | if arg == '--': | 
|  | is_file = True | 
|  | continue | 
|  | if is_file: | 
|  | with open(arg, 'rb') as f: | 
|  | for chunk in iter(lambda: f.read(65536), b''): | 
|  | sha.update(chunk) | 
|  | else: | 
|  | sha.update(os.fsencode(arg)) | 
|  | sha.update(b'\n') | 
|  |  | 
|  | # The hash can start with a digit, which the compiler doesn't | 
|  | # like as an symbol. So prefix it with an underscore | 
|  | print("_" + sha.hexdigest()) |