| import os | |
| import subprocess | |
| def get_enabled_subdirectories_with_files(base_directory): | |
| subdirs_with_files = [] | |
| for subdir in os.listdir(base_directory): | |
| try: | |
| full_path = os.path.join(base_directory, subdir) | |
| if os.path.isdir(full_path) and not subdir.endswith(".disabled") and not subdir.startswith('.') and subdir != '__pycache__': | |
| print(f"## Install dependencies for '{subdir}'") | |
| requirements_file = os.path.join(full_path, "requirements.txt") | |
| install_script = os.path.join(full_path, "install.py") | |
| if os.path.exists(requirements_file) or os.path.exists(install_script): | |
| subdirs_with_files.append((full_path, requirements_file, install_script)) | |
| except Exception as e: | |
| print(f"EXCEPTION During Dependencies INSTALL on '{subdir}':\n{e}") | |
| return subdirs_with_files | |
| def install_requirements(requirements_file_path): | |
| if os.path.exists(requirements_file_path): | |
| subprocess.run(["pip", "install", "-r", requirements_file_path]) | |
| def run_install_script(install_script_path): | |
| if os.path.exists(install_script_path): | |
| subprocess.run(["python", install_script_path]) | |
| custom_nodes_directory = "custom_nodes" | |
| subdirs_with_files = get_enabled_subdirectories_with_files(custom_nodes_directory) | |
| for subdir, requirements_file, install_script in subdirs_with_files: | |
| install_requirements(requirements_file) | |
| run_install_script(install_script) | |