Start all extensions in the extensions folder
(self)
| 74 | return False |
| 75 | |
| 76 | def start_extensions(self): |
| 77 | """Start all extensions in the extensions folder""" |
| 78 | extensions_dir = self.root_dir / "backend" / "extensions" |
| 79 | if not extensions_dir.exists(): |
| 80 | print("Extensions directory not found, skipping...") |
| 81 | return |
| 82 | |
| 83 | print("Starting extensions...") |
| 84 | |
| 85 | for item in extensions_dir.iterdir(): |
| 86 | if item.is_dir(): |
| 87 | for py_file in item.glob("*.py"): |
| 88 | try: |
| 89 | proc = subprocess.Popen( |
| 90 | [sys.executable, py_file.name], |
| 91 | cwd=item |
| 92 | ) |
| 93 | self.extension_processes.append(proc) |
| 94 | print(f"Started extension: {item.name}/{py_file.name}") |
| 95 | break |
| 96 | except Exception as e: |
| 97 | print(f"Error starting extension {item.name}: {e}") |
| 98 | |
| 99 | elif item.is_file() and item.suffix == ".py": |
| 100 | try: |
| 101 | proc = subprocess.Popen( |
| 102 | [sys.executable, item.name], |
| 103 | cwd=extensions_dir |
| 104 | ) |
| 105 | self.extension_processes.append(proc) |
| 106 | print(f"Started extension: {item.name}") |
| 107 | except Exception as e: |
| 108 | print(f"Error starting extension {item.name}: {e}") |
| 109 | |
| 110 | def start_web_ui(self): |
| 111 | webui_dir = self.root_dir / "ui" / "webserver" |