#!/usr/bin/env python3
+"""Print current tinc version for using in build scripts."""
+
from os import path, environ
-from sys import argv, stderr
import subprocess as subp
-prefix = "release-"
-source_root = path.dirname(path.realpath(__file__))
-source_root = environ.get("MESON_SOURCE_ROOT", source_root)
+PREFIX = "release-"
+SOURCE_ROOT = path.dirname(path.realpath(__file__))
+SOURCE_ROOT = environ.get("MESON_SOURCE_ROOT", SOURCE_ROOT)
cmd = [
"git",
"--git-dir",
- path.join(source_root, ".git"),
+ path.join(SOURCE_ROOT, ".git"),
"describe",
"--always",
"--tags",
- "--match=" + prefix + "*",
+ "--match=" + PREFIX + "*",
]
-if "short" in argv:
- cmd.append("--abbrev=0")
-
-result = subp.run(cmd, stdout=subp.PIPE, encoding="utf-8")
-version = result.stdout
-
-if result.returncode or not version:
- try:
- with open(path.join(source_root, "VERSION"), "r") as f:
- version = f.read().strip()
- except OSError as e:
- print("could not read version from file", e, file=stderr)
-elif version.startswith(prefix):
- version = version[len(prefix):].strip()
-
-print(version if version else "unknown", end="")
+result = subp.run(cmd, stdout=subp.PIPE, encoding="utf-8", check=True)
+version = result.stdout.strip().removeprefix("release-")
+print(version)