|  | """ Tool for implementing a simple cache | 
|  |  | 
|  | Tool returns 0 if cache is valid, returns non-zero is cache is invalid. | 
|  |  | 
|  | check_cache.py <args> || (<build_cache> && update_cache.py <args>) | 
|  | """ | 
|  | import argparse | 
|  | import hashlib | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | parser = argparse.ArgumentParser(description=__doc__) | 
|  | parser.add_argument('cache_input') | 
|  | parser.add_argument('cache_value') | 
|  |  | 
|  | args = parser.parse_args() | 
|  |  | 
|  | with open(args.cache_input, 'rb') as f: | 
|  | m = hashlib.sha1() | 
|  | m.update(f.read()) | 
|  | h = m.hexdigest() | 
|  |  | 
|  | with open(args.cache_value, 'w') as f: | 
|  | print(h, file=f) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | main() |