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