diff options
Diffstat (limited to 'sticker')
| -rw-r--r-- | sticker/__init__.py | 2 | ||||
| -rw-r--r-- | sticker/get_version.py | 50 | ||||
| -rw-r--r-- | sticker/version.py | 1 |
3 files changed, 53 insertions, 0 deletions
diff --git a/sticker/__init__.py b/sticker/__init__.py index e69de29..86e4dc2 100644 --- a/sticker/__init__.py +++ b/sticker/__init__.py @@ -0,0 +1,2 @@ +__version__ = "0.1.0+dev" +__author__ = "Tulir Asokan <tulir@maunium.net>" diff --git a/sticker/get_version.py b/sticker/get_version.py new file mode 100644 index 0000000..3149eb0 --- /dev/null +++ b/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 diff --git a/sticker/version.py b/sticker/version.py new file mode 100644 index 0000000..47f7fff --- /dev/null +++ b/sticker/version.py @@ -0,0 +1 @@ +from .get_version import git_tag, git_revision, version, linkified_version |
