diff --git a/installer.py b/installer.py
index 81dba32c1..e7ec96c4f 100644
--- a/installer.py
+++ b/installer.py
@@ -20,7 +20,7 @@ class Dot(dict): # dot notation access to dictionary attributes
pkg_resources, setuptools, distutils = None, None, None # defined via ensure_base_requirements
-version = { 'app': 'sd.next', 'version': 'unknown', 'branch': 'unknown', 'kanvas': 'unknown' }
+version = { 'app': 'sd.next', 'updated': 'unknown', 'commit': 'unknown', 'branch': 'unknown', 'url': 'unknown', 'kanvas': 'unknown' }
current_branch = None
log = logging.getLogger("sd")
console = None
@@ -1419,8 +1419,7 @@ def check_extensions():
def get_version(force=False):
t_start = time.time()
- global version # pylint: disable=global-statement
- if version is None or force:
+ if version.get('branch', 'unknown') == 'unknown' or force:
try:
subprocess.run('git config log.showsignature false', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True, check=True)
except Exception:
@@ -1428,21 +1427,19 @@ def get_version(force=False):
try:
res = subprocess.run('git log --pretty=format:"%h %ad" -1 --date=short', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True, check=True)
ver = res.stdout.decode(encoding = 'utf8', errors='ignore') if len(res.stdout) > 0 else ' '
- githash, updated = ver.split(' ')
+ commit, updated = ver.split(' ')
+ version['commit'], version['updated'] = commit, updated
+ except Exception as e:
+ log.warning(f'Version: where=commit {e}')
+ try:
res = subprocess.run('git remote get-url origin', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True, check=True)
origin = res.stdout.decode(encoding = 'utf8', errors='ignore') if len(res.stdout) > 0 else ''
res = subprocess.run('git rev-parse --abbrev-ref HEAD', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True, check=True)
branch_name = res.stdout.decode(encoding = 'utf8', errors='ignore') if len(res.stdout) > 0 else ''
- version = {
- 'app': 'sd.next',
- 'updated': updated,
- 'hash': githash,
- 'branch': branch_name.replace('\n', ''),
- 'url': origin.replace('\n', '').removesuffix('.git') + '/tree/' + branch_name.replace('\n', ''),
- 'kanvas': 'uknown',
- }
- except Exception:
- version = { 'app': 'sd.next', 'version': 'unknown', 'branch': 'unknown', 'kanvas': 'unknown' }
+ version['url'] = origin.replace('\n', '').removesuffix('.git') + '/tree/' + branch_name.replace('\n', '')
+ version['branch'] = branch_name.replace('\n', '')
+ except Exception as e:
+ log.warning(f'Version: where=branch {e}')
cwd = os.getcwd()
try:
if os.path.exists('extensions-builtin/sdnext-modernui'):
@@ -1453,7 +1450,8 @@ def get_version(force=False):
version['ui'] = branch_ui
else:
version['ui'] = 'unavailable'
- except Exception:
+ except Exception as e:
+ log.warning(f'Version: where=modernui {e}')
version['ui'] = 'unknown'
finally:
os.chdir(cwd)
@@ -1468,7 +1466,8 @@ def get_version(force=False):
version['kanvas'] = branch_kanvas
else:
version['kanvas'] = 'unavailable'
- except Exception:
+ except Exception as e:
+ log.warning(f'Version: where=kanvas {e}')
version['kanvas'] = 'unknown'
finally:
os.chdir(cwd)
diff --git a/modules/api/server.py b/modules/api/server.py
index b459ed605..7fa9eca3b 100644
--- a/modules/api/server.py
+++ b/modules/api/server.py
@@ -15,7 +15,7 @@ def get_motd():
motd = ''
ver = shared.get_version()
if ver.get('updated', None) is not None:
- motd = f"version {ver['hash']} {ver['updated']} {ver['url'].split('/')[-1]}
"
+ motd = f"version {ver['commit']} {ver['updated']} {ver['url'].split('/')[-1]}
" # pylint: disable=use-maxsplit-arg
if shared.opts.motd:
try:
res = requests.get('https://vladmandic.github.io/sdnext/motd', timeout=3)