aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-11-12 11:11:47 +0300
committerAUTOMATIC <16777216c@gmail.com>2022-11-12 11:11:47 +0300
commit98947d173e3f1667eba29c904f681047dea9de90 (patch)
tree19148691781555c05ad9b02b0130860632da172b
parenta1a376331c9ecbbee77b86daeaba44587cc56557 (diff)
run installers for newly installed extensions
-rw-r--r--launch.py26
-rw-r--r--modules/ui_extensions.py3
2 files changed, 18 insertions, 11 deletions
diff --git a/launch.py b/launch.py
index 5fa11560..8e65676d 100644
--- a/launch.py
+++ b/launch.py
@@ -105,22 +105,26 @@ def version_check(commit):
print("version check failed", e)
+def run_extension_installer(extension_dir):
+ path_installer = os.path.join(extension_dir, "install.py")
+ if not os.path.isfile(path_installer):
+ return
+
+ try:
+ env = os.environ.copy()
+ env['PYTHONPATH'] = os.path.abspath(".")
+
+ print(run(f'"{python}" "{path_installer}"', errdesc=f"Error running install.py for extension {extension_dir}", custom_env=env))
+ except Exception as e:
+ print(e, file=sys.stderr)
+
+
def run_extensions_installers():
if not os.path.isdir(dir_extensions):
return
for dirname_extension in os.listdir(dir_extensions):
- path_installer = os.path.join(dir_extensions, dirname_extension, "install.py")
- if not os.path.isfile(path_installer):
- continue
-
- try:
- env = os.environ.copy()
- env['PYTHONPATH'] = os.path.abspath(".")
-
- print(run(f'"{python}" "{path_installer}"', errdesc=f"Error running install.py for extension {dirname_extension}", custom_env=env))
- except Exception as e:
- print(e, file=sys.stderr)
+ run_extension_installer(os.path.join(dir_extensions, dirname_extension))
def prepare_enviroment():
diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py
index 02ab9643..6671cb60 100644
--- a/modules/ui_extensions.py
+++ b/modules/ui_extensions.py
@@ -134,6 +134,9 @@ def install_extension_from_url(dirname, url):
os.rename(tmpdir, target_dir)
+ import launch
+ launch.run_extension_installer(target_dir)
+
extensions.list_extensions()
return [extension_table(), html.escape(f"Installed into {target_dir}. Use Installed tab to restart.")]
finally: