~ruther/qmk_firmware

d55b07696b59d6e4bb427e22ed171a4e23c95a2b — Pablo Martínez 2 years ago 53132ab
Add commit info to `version.h` (#19542)

* Initial commit

* Fix import order

* Fix deleted code instead of debug print line

* Format

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Ryan <fauxpark@gmail.com>

* Renaming

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Joel Challis <git@zvecr.com>

* Update lib/python/qmk/git.py

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2 files changed, 18 insertions(+), 3 deletions(-)

M lib/python/qmk/cli/generate/version_h.py
M lib/python/qmk/git.py
M lib/python/qmk/cli/generate/version_h.py => lib/python/qmk/cli/generate/version_h.py +10 -3
@@ 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)

M lib/python/qmk/git.py => lib/python/qmk/git.py +8 -0
@@ 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()