diff --git a/gitrev.py b/gitrev.py new file mode 100644 index 0000000..2519772 --- /dev/null +++ b/gitrev.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +""" Automaticky generator cisla verze +Automaticky generuje cislo verze z informaci, poskytnutych gitem +Copyright (c) 2019, 2020, 2021 xPablo.cz +Autor: Pavel Brychta + +""" +import subprocess + +dirty = False +branch = "HEAD" +build = "0" +try: + version_parts = subprocess.check_output(["git", "describe", "--tags", "--dirty", "--long", "--always"]).decode().strip().split('-') + branch = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).decode().strip() + if version_parts[-1] == "dirty": + dirty = True + version_parts.pop() + + if len(version_parts) >= 3: + # zahodime abbrev + version_parts.pop(); + build = version_parts.pop() + version = '-'.join(version_parts) + else: + # neni zatim zadny tag + version = '0.0.0' + build = subprocess.check_output(["git", "rev-list", "--all", "--count"]).decode().strip() +except: + version = 'x.x.x' + +build = "" if build == "0" else "." + build +dirty_text = "" if not dirty else "m" +branch_text = "" if branch in ("master", "HEAD") else "[{}]".format(branch) + +print("{}{}{}{}".format(version, build, dirty_text, branch_text))