From 9034257c59fec54ae5316f5e6cfa3264483cad78 Mon Sep 17 00:00:00 2001 From: KaySar12 Date: Fri, 4 Apr 2025 11:47:16 +0700 Subject: [PATCH] update --- scripts/module.py | 20 -------------------- scripts/update_modules.py | 35 +++++++++++++++++++++++++++++++++++ utility.mk | 5 +++++ 3 files changed, 40 insertions(+), 20 deletions(-) delete mode 100644 scripts/module.py create mode 100644 scripts/update_modules.py create mode 100644 utility.mk diff --git a/scripts/module.py b/scripts/module.py deleted file mode 100644 index 5e6b2e4..0000000 --- a/scripts/module.py +++ /dev/null @@ -1,20 +0,0 @@ -import argparse -import os -import subprocess -import sys - -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))) -from services import config as Config - - -def main(): - config = Config.Config(config_path="utility/config/settings.yaml") - instances = config.get_instances() - - for instance in instances: - cmd = "python utility/main.py" - subprocess.run(f"{cmd} module uninstall {instance['name']}", shell=True) - - -if __name__ == "__main__": - main() diff --git a/scripts/update_modules.py b/scripts/update_modules.py new file mode 100644 index 0000000..2765d6d --- /dev/null +++ b/scripts/update_modules.py @@ -0,0 +1,35 @@ +import argparse +import os +import subprocess +import sys + +# Ensure the config module is available +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))) +from services import config as Config + +# Parse arguments properly +parser = argparse.ArgumentParser(description="Uninstall module for each instance") +parser.add_argument( + "action", help="Action to perform", choices=["uninstall", "install", "upgrade"] +) +parser.add_argument("config_path", help="Path to the config file") +args = parser.parse_args() + +# Load the configuration +print(f"Config path: {args.config_path}") +config = Config.Config(config_path=args.config_path) + +instances = config.get_instances() + +# Ensure instances is a valid list +if not isinstance(instances, list): + print("Error: instances is not a valid list.") + sys.exit(1) + +# Loop over each instance and run the uninstall command +for instance in instances: + if "name" in instance: + cmd = ["python", "utility/main.py", "module", args.action, instance["name"]] + subprocess.run(cmd) + else: + print(f"Warning: Instance missing 'name' field. Skipping.") diff --git a/utility.mk b/utility.mk new file mode 100644 index 0000000..7cfacf7 --- /dev/null +++ b/utility.mk @@ -0,0 +1,5 @@ +UTILITY_DIR =${PWD}/utility +SCRIPTS_DIR = ${UTILITY_DIR}/scripts +UTILITY_CONFIG = ${PWD}/utility/config/settings.yaml +update_modules: + ${PYTHON} ${SCRIPTS_DIR}/update_modules.py upgrade ${UTILITY_CONFIG} \ No newline at end of file