1b0b4323eSPaolo Bonzini#! /usr/bin/env python3 2b0b4323eSPaolo Bonzini 3b0b4323eSPaolo Bonzini# Usage: scripts/qemu-stamp.py STRING1 STRING2... -- FILE1 FILE2... 4b0b4323eSPaolo Bonziniimport hashlib 5b0b4323eSPaolo Bonziniimport os 6b0b4323eSPaolo Bonziniimport sys 7b0b4323eSPaolo Bonzini 8b0b4323eSPaolo Bonzinisha = hashlib.sha1() 9b0b4323eSPaolo Bonziniis_file = False 10b0b4323eSPaolo Bonzinifor arg in sys.argv[1:]: 11b0b4323eSPaolo Bonzini if arg == '--': 12b0b4323eSPaolo Bonzini is_file = True 13b0b4323eSPaolo Bonzini continue 14b0b4323eSPaolo Bonzini if is_file: 15b0b4323eSPaolo Bonzini with open(arg, 'rb') as f: 16b0b4323eSPaolo Bonzini for chunk in iter(lambda: f.read(65536), b''): 17b0b4323eSPaolo Bonzini sha.update(chunk) 18b0b4323eSPaolo Bonzini else: 19b0b4323eSPaolo Bonzini sha.update(os.fsencode(arg)) 20b0b4323eSPaolo Bonzini sha.update(b'\n') 21b0b4323eSPaolo Bonzini 22b0b4323eSPaolo Bonzini# The hash can start with a digit, which the compiler doesn't 23b0b4323eSPaolo Bonzini# like as an symbol. So prefix it with an underscore 24b0b4323eSPaolo Bonziniprint("_" + sha.hexdigest()) 25