summaryrefslogtreecommitdiff
path: root/plugins/get_app_version/get_app_version.py
diff options
context:
space:
mode:
authorsrv <enmanuel.saravia.externo@pandero.com.pe>2025-04-28 17:11:28 -0500
committersrv <enmanuel.saravia.externo@pandero.com.pe>2025-04-28 17:11:28 -0500
commitf35a7b0e70032de2feec9f3bda09da44cf0e1073 (patch)
tree1e0e09581dd3707d0ceb93346452dd14451a8423 /plugins/get_app_version/get_app_version.py
first commit
Diffstat (limited to 'plugins/get_app_version/get_app_version.py')
-rw-r--r--plugins/get_app_version/get_app_version.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/plugins/get_app_version/get_app_version.py b/plugins/get_app_version/get_app_version.py
new file mode 100644
index 0000000..bd671a7
--- /dev/null
+++ b/plugins/get_app_version/get_app_version.py
@@ -0,0 +1,41 @@
+from __future__ import unicode_literals
+
+import os
+import subprocess
+
+from pelican import signals
+
+
+def app_version(generator):
+ 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
+
+ try:
+ # 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('* ', '')
+ except OSError:
+ git_revision = "Unknown"
+ git_branch = "Unknown"
+
+ generator.context['CURRENT_VERSION'] = git_revision
+ generator.context['CURRENT_BRANCH'] = git_branch
+
+
+def register():
+ signals.generator_init.connect(app_version)