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