1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*6777b538SAndroid Build Coastguard Worker# Copyright 2016 The Chromium Authors 3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 5*6777b538SAndroid Build Coastguard Worker"""Takes a timestamp and writes it in as readable text to a .h file.""" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Workerimport argparse 8*6777b538SAndroid Build Coastguard Workerimport datetime 9*6777b538SAndroid Build Coastguard Workerimport os 10*6777b538SAndroid Build Coastguard Workerimport sys 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Workerdef main(): 13*6777b538SAndroid Build Coastguard Worker argument_parser = argparse.ArgumentParser() 14*6777b538SAndroid Build Coastguard Worker argument_parser.add_argument('output_file', help='The file to write to') 15*6777b538SAndroid Build Coastguard Worker argument_parser.add_argument('timestamp') 16*6777b538SAndroid Build Coastguard Worker args = argument_parser.parse_args() 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker date_val = int(args.timestamp) 19*6777b538SAndroid Build Coastguard Worker date = datetime.datetime.fromtimestamp(date_val, tz=datetime.timezone.utc) 20*6777b538SAndroid Build Coastguard Worker output = ('// Generated by //base/write_build_date_header.py\n' 21*6777b538SAndroid Build Coastguard Worker '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n' 22*6777b538SAndroid Build Coastguard Worker f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}' 23*6777b538SAndroid Build Coastguard Worker f' // {date:%b %d %Y %H:%M:%S}\n' 24*6777b538SAndroid Build Coastguard Worker '#endif // BASE_GENERATED_BUILD_DATE_TIMESTAMP \n') 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker current_contents = '' 27*6777b538SAndroid Build Coastguard Worker if os.path.isfile(args.output_file): 28*6777b538SAndroid Build Coastguard Worker with open(args.output_file, 'r') as current_file: 29*6777b538SAndroid Build Coastguard Worker current_contents = current_file.read() 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker if current_contents != output: 32*6777b538SAndroid Build Coastguard Worker with open(args.output_file, 'w') as output_file: 33*6777b538SAndroid Build Coastguard Worker output_file.write(output) 34*6777b538SAndroid Build Coastguard Worker return 0 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 37*6777b538SAndroid Build Coastguard Worker sys.exit(main()) 38