# Copyright 2021 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. """Generate a header file for UTC time""" import argparse from datetime import datetime import sys HEADER = """// Copyright 2021 The Pigweed Authors // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. #include """ def parse_args() -> None: """Setup argparse.""" parser = argparse.ArgumentParser() parser.add_argument("out", help="path for output header file") return parser.parse_args() def main() -> int: """Main function""" args = parse_args() time_stamp = int(datetime.now().timestamp()) print(time_stamp) with open(args.out, "w") as header: print(args.out) header.write(HEADER) # Add a comment in the generated header to show readable build time string_date = datetime.fromtimestamp(time_stamp).strftime( "%m/%d/%Y %H:%M:%S") header.write(f'// {string_date}\n') # Write to the header. header.write(''.join([ 'constexpr uint64_t kBuildTimeMicrosecondsUTC = ', f'{int(time_stamp * 1e6)};\n' ])) return 0 if __name__ == "__main__": sys.exit(main())