34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
import importlib.util
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
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.")
|