diff options
author | AUTOMATIC <16777216c@gmail.com> | 2023-03-27 07:02:30 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2023-03-27 07:02:30 +0000 |
commit | 5fcd4bfa3d86c3ebf91ff993b6472a68a3a4f6ad (patch) | |
tree | 632754a75fd1472d826343dcec061dec6ad835d4 /modules/extensions.py | |
parent | 5cf3822e463393e6ba1eab0b5647174f754886b9 (diff) | |
download | stable-diffusion-webui-gfx803-5fcd4bfa3d86c3ebf91ff993b6472a68a3a4f6ad.tar.gz stable-diffusion-webui-gfx803-5fcd4bfa3d86c3ebf91ff993b6472a68a3a4f6ad.tar.bz2 stable-diffusion-webui-gfx803-5fcd4bfa3d86c3ebf91ff993b6472a68a3a4f6ad.zip |
do not read extensions' git stuff at startup
Diffstat (limited to 'modules/extensions.py')
-rw-r--r-- | modules/extensions.py | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/modules/extensions.py b/modules/extensions.py index a14ffbf0..0d34b89a 100644 --- a/modules/extensions.py +++ b/modules/extensions.py @@ -5,13 +5,14 @@ import traceback import time
import git
-from modules import paths, shared
+from modules import shared
from modules.paths_internal import extensions_dir, extensions_builtin_dir
extensions = []
-if not os.path.exists(paths.extensions_dir):
- os.makedirs(paths.extensions_dir)
+if not os.path.exists(extensions_dir):
+ os.makedirs(extensions_dir)
+
def active():
return [x for x in extensions if x.enabled]
@@ -26,21 +27,29 @@ class Extension: self.can_update = False
self.is_builtin = is_builtin
self.version = ''
+ self.remote = None
+ self.have_info_from_repo = False
+
+ def read_info_from_repo(self):
+ if self.have_info_from_repo:
+ return
+
+ self.have_info_from_repo = True
repo = None
try:
- if os.path.exists(os.path.join(path, ".git")):
- repo = git.Repo(path)
+ if os.path.exists(os.path.join(self.path, ".git")):
+ repo = git.Repo(self.path)
except Exception:
- print(f"Error reading github repository info from {path}:", file=sys.stderr)
+ print(f"Error reading github repository info from {self.path}:", file=sys.stderr)
print(traceback.format_exc(), file=sys.stderr)
if repo is None or repo.bare:
self.remote = None
else:
try:
- self.remote = next(repo.remote().urls, None)
self.status = 'unknown'
+ self.remote = next(repo.remote().urls, None)
head = repo.head.commit
ts = time.asctime(time.gmtime(repo.head.commit.committed_date))
self.version = f'{head.hexsha[:8]} ({ts})'
@@ -85,11 +94,11 @@ class Extension: def list_extensions():
extensions.clear()
- if not os.path.isdir(paths.extensions_dir):
+ if not os.path.isdir(extensions_dir):
return
extension_paths = []
- for dirname in [paths.extensions_dir, paths.extensions_builtin_dir]:
+ for dirname in [extensions_dir, extensions_builtin_dir]:
if not os.path.isdir(dirname):
return
@@ -98,7 +107,7 @@ def list_extensions(): if not os.path.isdir(path):
continue
- extension_paths.append((extension_dirname, path, dirname == paths.extensions_builtin_dir))
+ extension_paths.append((extension_dirname, path, dirname == extensions_builtin_dir))
for dirname, path, is_builtin in extension_paths:
extension = Extension(name=dirname, path=path, enabled=dirname not in shared.opts.disabled_extensions, is_builtin=is_builtin)
|