3rd/run.py

55 lines
1.4 KiB
Python

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()