Unverified Commit 992a877a authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub

Merge pull request #4684 from simcop2387/fix-extension-docker

Fix docker tmp/ and extensions/ handling for docker.
parents 72e81d5b 671c0e42
...@@ -9,6 +9,8 @@ import git ...@@ -9,6 +9,8 @@ import git
import gradio as gr import gradio as gr
import html import html
import shutil
import errno
from modules import extensions, shared, paths from modules import extensions, shared, paths
...@@ -138,7 +140,18 @@ def install_extension_from_url(dirname, url): ...@@ -138,7 +140,18 @@ def install_extension_from_url(dirname, url):
repo = git.Repo.clone_from(url, tmpdir) repo = git.Repo.clone_from(url, tmpdir)
repo.remote().fetch() repo.remote().fetch()
try:
os.rename(tmpdir, target_dir) 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)
import launch import launch
launch.run_extension_installer(target_dir) launch.run_extension_installer(target_dir)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment