aboutsummaryrefslogtreecommitdiffstats
path: root/build/lib/sticker/get_version.py
diff options
context:
space:
mode:
Diffstat (limited to 'build/lib/sticker/get_version.py')
-rw-r--r--build/lib/sticker/get_version.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/build/lib/sticker/get_version.py b/build/lib/sticker/get_version.py
new file mode 100644
index 0000000..3149eb0
--- /dev/null
+++ b/build/lib/sticker/get_version.py
@@ -0,0 +1,50 @@
+import subprocess
+import shutil
+import os
+
+from . import __version__
+
+cmd_env = {
+ "PATH": os.environ["PATH"],
+ "HOME": os.environ["HOME"],
+ "LANG": "C",
+ "LC_ALL": "C",
+}
+
+
+def run(cmd):
+ return subprocess.check_output(cmd, stderr=subprocess.DEVNULL, env=cmd_env)
+
+
+if (os.path.exists("../.git") or os.path.exists(".git")) and shutil.which("git"):
+ try:
+ git_revision = run(["git", "rev-parse", "HEAD"]).strip().decode("ascii")
+ git_revision_url = f"https://github.com/maunium/stickerpicker/commit/{git_revision}"
+ git_revision = git_revision[:8]
+ except (subprocess.SubprocessError, OSError):
+ git_revision = "unknown"
+ git_revision_url = None
+
+ try:
+ git_tag = run(["git", "describe", "--exact-match", "--tags"]).strip().decode("ascii")
+ except (subprocess.SubprocessError, OSError):
+ git_tag = None
+else:
+ git_revision = "unknown"
+ git_revision_url = None
+ git_tag = None
+
+git_tag_url = (f"https://github.com/maunium/stickerpicker/releases/tag/{git_tag}"
+ if git_tag else None)
+
+if git_tag and __version__ == git_tag[1:].replace("-", ""):
+ version = __version__
+ linkified_version = f"[{version}]({git_tag_url})"
+else:
+ if not __version__.endswith("+dev"):
+ __version__ += "+dev"
+ version = f"{__version__}.{git_revision}"
+ if git_revision_url:
+ linkified_version = f"{__version__}.[{git_revision}]({git_revision_url})"
+ else:
+ linkified_version = version
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage