diff options
Diffstat (limited to 'youtube/get_app_version')
-rw-r--r-- | youtube/get_app_version/__init__.py | 1 | ||||
-rw-r--r-- | youtube/get_app_version/get_app_version.py | 47 |
2 files changed, 48 insertions, 0 deletions
diff --git a/youtube/get_app_version/__init__.py b/youtube/get_app_version/__init__.py new file mode 100644 index 0000000..2d5290f --- /dev/null +++ b/youtube/get_app_version/__init__.py @@ -0,0 +1 @@ +from .get_app_version import * diff --git a/youtube/get_app_version/get_app_version.py b/youtube/get_app_version/get_app_version.py new file mode 100644 index 0000000..4995bb7 --- /dev/null +++ b/youtube/get_app_version/get_app_version.py @@ -0,0 +1,47 @@ +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 = {k: os.environ[k] for k in ['SYSTEMROOT', 'PATH'] if k in os.environ} + env.update({'LANGUAGE': 'C', 'LANG': 'C', '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: + return subst_list + + if call(["git", "branch"], stderr=STDOUT, stdout=open(os.devnull, 'w')) != 0: + return subst_list + + describe = minimal_env_cmd(["git", "describe", "--tags", "--always"]) + git_revision = describe.strip().decode('ascii') + + branch = minimal_env_cmd(["git", "branch"]) + git_branch = branch.strip().decode('ascii').replace('* ', '') + + subst_list.update({ + "branch": git_branch, + "commit": git_revision + }) + + return subst_list + + +if __name__ == "__main__": + app_version() |