This commit is contained in:
KaySar12 2025-04-04 11:47:16 +07:00
parent 0c903e3732
commit 9034257c59
3 changed files with 40 additions and 20 deletions

View File

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

35
scripts/update_modules.py Normal file
View File

@ -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.")

5
utility.mk Normal file
View File

@ -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}