Browse Source

`qmk doctor`: display qmk_firmware version tag (#16155)

Ryan 3 years ago
parent
commit
c9f88d7c67
2 changed files with 14 additions and 1 deletions
  1. 6 1
      lib/python/qmk/cli/doctor/main.py
  2. 8 0
      lib/python/qmk/commands.py

+ 6 - 1
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.')

+ 8 - 0
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
     """