import os import sys import subprocess def restart_docker_services(dir_path): """ Restart docker-compose services in the given directory. """ try: print(f"Restarting docker-compose services in: {dir_path}") subprocess.run(["docker-compose", "restart"], cwd=dir_path, check=True) print(f"Services restarted successfully in: {dir_path}") except subprocess.CalledProcessError as e: print(f"Error restarting services in {dir_path}: {e}") def hard_restart_docker_services(dir_path): """ Perform a hard restart of docker-compose services in the given directory using docker-compose down and docker-compose up -d. """ try: print(f"Performing hard restart for docker-compose services in: {dir_path}") subprocess.run(["docker-compose", "down"], cwd=dir_path, check=True) subprocess.run(["docker-compose", "up", "-d"], cwd=dir_path, check=True) print(f"Hard restart completed successfully in: {dir_path}") except subprocess.CalledProcessError as e: print(f"Error during hard restart in {dir_path}: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print("Please provide the path to the parent directory as a parameter.") sys.exit(1) parent_directory = sys.argv[1] for dir_entry in os.scandir(parent_directory): if dir_entry.is_dir(): dir_path = dir_entry.path dir_name = os.path.basename(dir_path) print(f"Checking directory: {dir_path}") docker_compose_file = os.path.join(dir_path, "docker-compose.yml") if os.path.isfile(docker_compose_file): print(f"Found docker-compose.yml in {dir_path}.") if dir_name == "mailu": print(f"Directory {dir_name} detected. Performing hard restart...") hard_restart_docker_services(dir_path) else: print(f"Restarting services in {dir_path}...") restart_docker_services(dir_path) else: print(f"No docker-compose.yml found in {dir_path}. Skipping.")