aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--youtube/__init__.py5
-rw-r--r--youtube/get_app_version/__init__.py1
-rw-r--r--youtube/get_app_version/get_app_version.py54
-rw-r--r--youtube/templates/base.html6
-rw-r--r--youtube/version.py3
5 files changed, 68 insertions, 1 deletions
diff --git a/youtube/__init__.py b/youtube/__init__.py
index b27496d..f935f1e 100644
--- a/youtube/__init__.py
+++ b/youtube/__init__.py
@@ -1,4 +1,5 @@
from youtube import util
+from .get_app_version import app_version
import flask
from flask import request
import settings
@@ -32,6 +33,10 @@ def inject_theme_preference():
return {
'theme_path': '/youtube.com/static/' + theme_names[settings.theme] + '.css',
'settings': settings,
+ # Detect version
+ 'current_version': app_version()['version'],
+ 'current_branch': app_version()['branch'],
+ 'current_commit': app_version()['commit'],
}
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..51eb2ce
--- /dev/null
+++ b/youtube/get_app_version/get_app_version.py
@@ -0,0 +1,54 @@
+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
+
+ if call(["git", "branch"], stderr=STDOUT,
+ stdout=open(os.devnull, 'w')) != 0:
+
+ subst_list = {
+ "version": __version__,
+ "branch": None,
+ "commit": None
+ }
+
+ 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()
diff --git a/youtube/templates/base.html b/youtube/templates/base.html
index 33e67a6..bb7437d 100644
--- a/youtube/templates/base.html
+++ b/youtube/templates/base.html
@@ -231,7 +231,11 @@
</main>
<footer class="footer">
<p>This site is Free/Libre Software</p>
- <p>Current version: 3304bab @ master</p>
+ {% if current_commit and current_version %}
+ <p>Current version: {{ current_version }}-{{ current_commit }} @ {{ current_branch }}</p>
+ {% else %}
+ <p>Current version: {{ current_version }}</p>
+ {% endif %}
</footer>
</body>
diff --git a/youtube/version.py b/youtube/version.py
new file mode 100644
index 0000000..748c016
--- /dev/null
+++ b/youtube/version.py
@@ -0,0 +1,3 @@
+from __future__ import unicode_literals
+
+__version__ = '0.1.0'