3rd/run.py
Victor Westerlund 234e125d84 fix: resolved runtime issues caused by subroutines expecting old config format (#3)
This PR fixes some issues with invoking the Archive class when running the script.

Reviewed-on: https://codeberg.org/vlw/3rd/pulls/3
2026-01-01 13:35:08 +01:00

61 lines
1.6 KiB
Python

import os
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() -> 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", help="Load config file from path",default=".config.json")
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
Archive.preserve_archives = True
stdout.ok("Dry run enabled")
stdout.log("Starting...")
if not os.path.isfile(args.input):
stdout.error(f"No config file found at path: '{args.input}'")
exit(1)
for item in Config.from_json_file(args.input):
Aws(Archive(item)).upload()
stdout.log("Finished!")
if __name__ == "__main__":
main()