scripts/timestamp_checklist.py (38 lines of code) (raw):

################################################################################# # # This script updates the timestamp of a specific checklist and saves it. # # Last updated: January 2023 # ################################################################################# import json import argparse import sys import requests import datetime # Get input arguments parser = argparse.ArgumentParser(description='Timestamp an Azure Review Checklist') parser.add_argument('--input-file', dest='input_file', action='store', help='You need to supply the name of the JSON file with the checklist to be timestamped') parser.add_argument('--output-file', dest='output_file', action='store', help='You can optionally supply the name of a new JSON file that will be used to save the output. Otherwise the sorted checklist will replace the unused one') parser.add_argument('--dry-run', dest='dry_run', action='store_true', default=False, help='do not save anything, only output to console (default: False)') parser.add_argument('--verbose', dest='verbose', action='store_true', default=False, help='run in verbose mode (default: False)') args = parser.parse_args() if not args.input_file: print("ERROR: no input file specified, not doing anything") # Load the checklist try: with open(args.input_file) as f: checklist = json.load(f) except Exception as e: print("ERROR: Error when processing JSON file, nothing changed", args.input_file, "-", str(e)) # Overwrite the timestamp checklist['metadata']['timestamp'] = datetime.date.today().strftime("%B %d, %Y") # If dry-run, show on screen if args.dry_run: print(json.dumps(checklist, indent=4)) # Saving output file if specified in the argument if not args.dry_run: if args.output_file: output_file = args.output_file else: output_file = args.input_file if args.verbose: print("DEBUG: saving output file to", output_file) checklist_string = json.dumps(checklist, indent=4) with open(output_file, 'w', encoding='utf-8') as f: f.write(checklist_string) f.close()