diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/python/qmk/cli/generate/version_h.py | 13 | ||||
| -rw-r--r-- | lib/python/qmk/git.py | 8 | 
2 files changed, 18 insertions, 3 deletions
| diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py index a75702c529..fd87df3617 100644 --- a/lib/python/qmk/cli/generate/version_h.py +++ b/lib/python/qmk/cli/generate/version_h.py @@ -6,7 +6,7 @@ from milc import cli  from qmk.path import normpath  from qmk.commands import dump_lines -from qmk.git import git_get_version +from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty  from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE  TIME_FMT = '%Y-%m-%d-%H:%M:%S' @@ -29,23 +29,30 @@ def generate_version_h(cli):          current_time = strftime(TIME_FMT)      if cli.args.skip_git: +        git_dirty = False          git_version = "NA" +        git_qmk_hash = "NA"          chibios_version = "NA"          chibios_contrib_version = "NA"      else: +        git_dirty = git_is_dirty()          git_version = git_get_version() or current_time +        git_qmk_hash = git_get_qmk_hash() or "Unknown"          chibios_version = git_get_version("chibios", "os") or current_time          chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time      # Build the version.h file.      version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once'] -    version_h_lines.append(f""" +    version_h_lines.append( +        f"""  #define QMK_VERSION "{git_version}"  #define QMK_BUILDDATE "{current_time}" +#define QMK_GIT_HASH  "{git_qmk_hash}{'*' if git_dirty else ''}"  #define CHIBIOS_VERSION "{chibios_version}"  #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" -""") +""" +    )      # Show the results      dump_lines(cli.args.output, version_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 7fa0306f5c..b6c11edbfe 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -136,3 +136,11 @@ def git_get_ignored_files(check_dir='.'):      if invalid.returncode != 0:          return []      return invalid.stdout.strip().splitlines() + + +def git_get_qmk_hash(): +    output = cli.run(['git', 'rev-parse', '--short', 'HEAD']) +    if output.returncode != 0: +        return None + +    return output.stdout.strip() | 
