X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=version.py;h=b4fb38afae8ec239424dd07139a56cb58ec15880;hb=ccbe79c03b8c64432bbf1ce82dc0e123cc02bd6d;hp=ff491bb5dae7f7909a4e0182d34d2150ba2129de;hpb=33f0918cde36accb606271c379bc8e75973e9d59;p=tinc diff --git a/version.py b/version.py index ff491bb5..b4fb38af 100755 --- a/version.py +++ b/version.py @@ -1,12 +1,17 @@ #!/usr/bin/env python3 -from sys import argv, exit +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) cmd = [ "git", + "--git-dir", + path.join(source_root, ".git"), "describe", "--always", "--tags", @@ -16,11 +21,22 @@ cmd = [ if "short" in argv: cmd.append("--abbrev=0") -result = subp.run(cmd, stdout=subp.PIPE, encoding="utf-8") -version = result.stdout +version = None -if not result.returncode and version and version.startswith(prefix): +try: + result = subp.run(cmd, stdout=subp.PIPE, encoding="utf-8") + if not result.returncode: + version = result.stdout +except FileNotFoundError: + pass + +if 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="") -exit(not version)