import typing import argparse from src.Config import Config from src.Stdout import Stdout from src.Upload.Aws import Aws from src.Archive.Archive import Archive from src.Enums import StdoutLevel, Namespace stdout = Stdout(Namespace.CLI) def main(file: str) -> None: """ Autorun from a config file Args: file (str): Path to the config file to load """ parser = argparse.ArgumentParser(description="Testing") parser.add_argument("-s", "--sleep", type=int, help="Global log sleep level") parser.add_argument("-i", "--input", action="store_true", help="Load config file from path") parser.add_argument("-d", "--dryrun", action="store_true", help="Dry run") parser.add_argument("-l", "--log-level", type=str, help="Global log level") args = parser.parse_args() # Set custom global sleep level if args.sleep: Stdout.global_sleep = args.sleep stdout.ok(f"Setting global log sleep level to: {Stdout.global_sleep} second(s)") # Set custom global log level if args.log_level: try: Stdout.global_level = StdoutLevel[args.log_level.upper()] stdout.ok(f"Setting global log level to: {Stdout.global_level}") except KeyError: raise ValueError(f"{args.log_level} is not a valid StdoutLevel") # Set enable dry run if args.dryrun: Aws.dry_run = True stdout.ok("Dry run enabled") stdout.log("Starting...") for item in Config.from_json_file(args.input): Archive(item) stdout.log("Finished!") if __name__ == "__main__": main()