Refactoring get_app_version

This commit is contained in:
Astound 2025-03-01 04:06:01 +08:00
parent 57854169f4
commit c2986f3b14
Signed by: kaiser
GPG Key ID: 97504AF0027B1A56

View File

@ -11,17 +11,10 @@ import subprocess
def app_version(): def app_version():
def minimal_env_cmd(cmd): def minimal_env_cmd(cmd):
# make minimal environment # make minimal environment
env = {} env = {k: os.environ[k] for k in ['SYSTEMROOT', 'PATH'] if k in os.environ}
for k in ['SYSTEMROOT', 'PATH']: env.update({'LANGUAGE': 'C', 'LANG': 'C', 'LC_ALL': 'C'})
v = os.environ.get(k)
if v is not None:
env[k] = v
env['LANGUAGE'] = 'C' out = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=env).communicate()[0]
env['LANG'] = 'C'
env['LC_ALL'] = 'C'
out = subprocess.Popen(
cmd, stdout=subprocess.PIPE, env=env).communicate()[0]
return out return out
subst_list = { subst_list = {
@ -31,24 +24,21 @@ def app_version():
} }
if os.system("command -v git > /dev/null 2>&1") != 0: if os.system("command -v git > /dev/null 2>&1") != 0:
subst_list return subst_list
else:
if call(["git", "branch"], stderr=STDOUT, if call(["git", "branch"], stderr=STDOUT, stdout=open(os.devnull, 'w')) != 0:
stdout=open(os.devnull, 'w')) != 0: return subst_list
subst_list
else: describe = minimal_env_cmd(["git", "describe", "--tags", "--always"])
# version
describe = minimal_env_cmd(["git", "describe", "--always"])
git_revision = describe.strip().decode('ascii') git_revision = describe.strip().decode('ascii')
# branch
branch = minimal_env_cmd(["git", "branch"]) branch = minimal_env_cmd(["git", "branch"])
git_branch = branch.strip().decode('ascii').replace('* ', '') git_branch = branch.strip().decode('ascii').replace('* ', '')
subst_list = { subst_list.update({
"version": __version__,
"branch": git_branch, "branch": git_branch,
"commit": git_revision "commit": git_revision
} })
return subst_list return subst_list