aboutsummaryrefslogtreecommitdiffstats
path: root/testing/hy/0001-get_version.py-allow-specifying-version-in-environme.patch
blob: 6c09b38537b6cf2bac84f3a83d8b0a5966f360de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From 31041f1713f9a22176b3610a9b619db52004ddb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 23 Sep 2019 20:35:48 +0200
Subject: [PATCH] get_version.py: allow specifying version in environment
 variable

While packaging hy for Alpine Linux I noticed that the VERSIONFILE is
ignored if hy is build in a git repository. On Alpine the packages are
build in the package repository resulting in a wrong hy version. This
change allows specifying the version in an environment variable which is
preferred over git-describe(1) and the VERSIONFILE.
---
 get_version.py | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/get_version.py b/get_version.py
index 759336d..9224f59 100644
--- a/get_version.py
+++ b/get_version.py
@@ -5,16 +5,19 @@ import os, subprocess, runpy
 os.chdir(os.path.split(os.path.abspath(__file__))[0])
 VERSIONFILE = os.path.join("hy", "version.py")
 
-try:
-    __version__ = (subprocess.check_output
-                   (["git", "describe", "--tags", "--dirty"])
-                   .decode('ASCII').strip()
-                   .replace('-', '+', 1).replace('-', '.'))
-    with open(VERSIONFILE, "wt") as o:
-        o.write("__version__ = {!r}\n".format(__version__))
+if "HY_VERSION" in os.environ:
+    __version__ = os.environ["HY_VERSION"]
+else:
+    try:
+        __version__ = (subprocess.check_output
+                       (["git", "describe", "--tags", "--dirty"])
+                       .decode('ASCII').strip()
+                       .replace('-', '+', 1).replace('-', '.'))
+        with open(VERSIONFILE, "wt") as o:
+            o.write("__version__ = {!r}\n".format(__version__))
 
-except (subprocess.CalledProcessError, OSError):
-    if os.path.exists(VERSIONFILE):
-        __version__ = runpy.run_path(VERSIONFILE)['__version__']
-    else:
-        __version__ = "unknown"
+    except (subprocess.CalledProcessError, OSError):
+        if os.path.exists(VERSIONFILE):
+            __version__ = runpy.run_path(VERSIONFILE)['__version__']
+        else:
+            __version__ = "unknown"