Update ui_extensions.py
Add git submodule and Fix WinError
This commit is contained in:
parent
a9fed7c364
commit
4845db4e32
@ -141,22 +141,11 @@ def install_extension_from_url(dirname, url):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
shutil.rmtree(tmpdir, True)
|
shutil.rmtree(tmpdir, True)
|
||||||
|
with git.Repo.clone_from(url, tmpdir) as repo:
|
||||||
repo = git.Repo.clone_from(url, tmpdir)
|
repo.remote().fetch()
|
||||||
repo.remote().fetch()
|
for submodule in repo.submodules:
|
||||||
|
submodule.update()
|
||||||
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user