summaryrefslogtreecommitdiffstats
path: root/lib/python
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2022-02-02 15:31:42 +1100
committerGitHub <noreply@github.com>2022-02-01 20:31:42 -0800
commitc9f88d7c67e00b3689fd4afd7630bc7fcd5b7ed4 (patch)
tree1d6e8eb51b87d8af9829c331a925c9a7f60d2205 /lib/python
parent16ad8c0159383b0ecee7c97119e3d61f1038f56a (diff)
`qmk doctor`: display qmk_firmware version tag (#16155)
Diffstat (limited to 'lib/python')
-rwxr-xr-xlib/python/qmk/cli/doctor/main.py7
-rw-r--r--lib/python/qmk/commands.py8
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py
index ed20f46d3f..2e5e221e8f 100755
--- a/lib/python/qmk/cli/doctor/main.py
+++ b/lib/python/qmk/cli/doctor/main.py
@@ -11,7 +11,7 @@ from milc.questions import yesno
from qmk import submodules
from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM
from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules
-from qmk.commands import git_check_repo, git_get_branch, git_is_dirty, git_get_remotes, git_check_deviation, in_virtualenv
+from qmk.commands import git_check_repo, git_get_branch, git_get_tag, git_is_dirty, git_get_remotes, git_check_deviation, in_virtualenv
def os_tests():
@@ -47,6 +47,11 @@ def git_tests():
git_branch = git_get_branch()
if git_branch:
cli.log.info('Git branch: %s', git_branch)
+
+ repo_version = git_get_tag()
+ if repo_version:
+ cli.log.info('Repo version: %s', repo_version)
+
git_dirty = git_is_dirty()
if git_dirty:
cli.log.warning('{fg_yellow}Git has unstashed/uncommitted changes.')
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 5a01943773..90a68ca3cd 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -295,6 +295,14 @@ def git_get_branch():
return git_branch.stdout.strip()
+def git_get_tag():
+ """Returns the current tag for a repo, or None.
+ """
+ git_tag = cli.run(['git', 'describe', '--abbrev=0', '--tags'])
+ if git_tag.returncode == 0:
+ return git_tag.stdout.strip()
+
+
def git_is_dirty():
"""Returns 1 if repo is dirty, or 0 if clean
"""