From fa927f40b8a4c1b69b7808f0a918dd8baf39fdf3 Mon Sep 17 00:00:00 2001 From: JoYo <> Date: Tue, 7 Dec 2021 18:33:22 -0500 Subject: [PATCH] simplified to a single parameter --- .gitignore | 2 ++ banana/config.py | 12 +++--------- banana/scripts.py | 20 +++++++++++++++----- docker-compose.yaml | 5 ++++- 4 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38da6d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +.vscode/ diff --git a/banana/config.py b/banana/config.py index 9d7ca04..c284892 100644 --- a/banana/config.py +++ b/banana/config.py @@ -3,10 +3,7 @@ from pathlib import Path def new(path: Path): - config = { - "addons": [None], - "eso": {"path": None}, - } + config = {"addons": ["https://www.esoui.com/downloads/info7-LibAddonMenu.html"]} with path.open("w") as file_open: config = yaml.dump(config, file_open, default_flow_style=False) @@ -14,14 +11,11 @@ def new(path: Path): def load(path: Path) -> dict: with path.open("r") as file_open: - config = yaml.safe_load(file_open) + config = yaml.load(file_open, Loader=yaml.Loader) return config def valid(config: dict) -> bool: assert config.get("addons") - assert config.get("eso") - - if not "path" in config.get("eso"): - raise AssertionError() + assert isinstance(config["addons"], list) diff --git a/banana/scripts.py b/banana/scripts.py index bcab438..51349ff 100644 --- a/banana/scripts.py +++ b/banana/scripts.py @@ -7,10 +7,17 @@ from . import config def periodical_script(): - parser = ArgumentParser(description="Secret sharing script.") + parser = ArgumentParser( + description="Visit https://www.esoui.com/ to search for addons and their dependencies URLs. Edit addons.yaml in the ESO live path and add the URL for each addon for installation. " + ) parser.add_argument("-v", "--verbose", action="count", help="verbose logging") parser.add_argument( - "-c", "--config", default="banana.yaml", help="configuration file path" + "-p", + "--eso_live_path", + default=Path.home().joinpath( + ".steam/steam/steamapps/compatdata/306130/pfx/drive_c/users/steamuser/Documents/Elder Scrolls Online/live/" + ), + help='default: "~/.steam/steam/steamapps/compatdata/306130/pfx/drive_c/users/steamuser/Documents/Elder Scrolls Online/live/"', ) args = parser.parse_args() @@ -27,13 +34,16 @@ def periodical_script(): logging.info(args) - config_path = Path(args.config) + if args.eso_live_path[:2] == "~/": + args.eso_live_path = Path.home().joinpath(args.eso_live_path[2:]) + + config_path = Path(args.eso_live_path).joinpath("addons.yaml") config_path.touch(exist_ok=True) config_current = config.load(config_path) try: config.valid(config_current) - except (AssertionError, AttributeError) as error: - logging.debug(error) + except AssertionError: config.new(config_path) config_current = config.load(config_path) + logging.info(f'addons list created at "{config_path}"') diff --git a/docker-compose.yaml b/docker-compose.yaml index d6d1f5c..e35fc6d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,4 +5,7 @@ services: image: banana build: context: . - command: eso-banana-script + volumes: + - .:/project + working_dir: /project + command: eso-banana-script -v