25 lines
		
	
	
		
			614 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			614 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								#! /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())
							 |