aboutsummaryrefslogtreecommitdiffstats
path: root/modules/ui_extensions.py
diff options
context:
space:
mode:
authorFtps <63702646+Tps-F@users.noreply.github.com>2023-03-15 11:29:50 +0000
committerFtps <63702646+Tps-F@users.noreply.github.com>2023-03-15 11:29:50 +0000
commit4845db4e324dd5194ea82cc5f772237242a89a92 (patch)
treea78760306d016b7a26746e19dbbb30dd0e488b2f /modules/ui_extensions.py
parenta9fed7c364061ae6efb37f797b6b522cb3cf7aa2 (diff)
downloadstable-diffusion-webui-gfx803-4845db4e324dd5194ea82cc5f772237242a89a92.tar.gz
stable-diffusion-webui-gfx803-4845db4e324dd5194ea82cc5f772237242a89a92.tar.bz2
stable-diffusion-webui-gfx803-4845db4e324dd5194ea82cc5f772237242a89a92.zip
Update ui_extensions.py
Add git submodule and Fix WinError
Diffstat (limited to 'modules/ui_extensions.py')
-rw-r--r--modules/ui_extensions.py21
1 files changed, 5 insertions, 16 deletions
diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py
index df75a925..b24b67fc 100644
--- a/modules/ui_extensions.py
+++ b/modules/ui_extensions.py
@@ -141,22 +141,11 @@ def install_extension_from_url(dirname, url):
try:
shutil.rmtree(tmpdir, True)
-
- repo = git.Repo.clone_from(url, tmpdir)
- repo.remote().fetch()
-
- try:
- os.rename(tmpdir, target_dir)
- except OSError as err:
- # TODO what does this do on windows? I think it'll be a different error code but I don't have a system to check it
- # Shouldn't cause any new issues at least but we probably want to handle it there too.
- if err.errno == errno.EXDEV:
- # Cross device link, typical in docker or when tmp/ and extensions/ are on different file systems
- # Since we can't use a rename, do the slower but more versitile shutil.move()
- shutil.move(tmpdir, target_dir)
- else:
- # Something else, not enough free space, permissions, etc. rethrow it so that it gets handled.
- raise(err)
+ with git.Repo.clone_from(url, tmpdir) as repo:
+ repo.remote().fetch()
+ for submodule in repo.submodules:
+ submodule.update()
+ os.rename(tmpdir, target_dir)
import launch
launch.run_extension_installer(target_dir)