diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2023-04-26 18:24:39 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2023-05-02 11:40:18 -0400 |
commit | 1a24e7c5b683355335b115e5659eb6fe8c8d11dc (patch) | |
tree | d0ea04389877845545fb0f2de2561f5782d00d74 /klippy/klippy.py | |
parent | 3b0729c94932f4df0298a7c992022f54a5454428 (diff) | |
download | kutter-1a24e7c5b683355335b115e5659eb6fe8c8d11dc.tar.gz kutter-1a24e7c5b683355335b115e5659eb6fe8c8d11dc.tar.xz kutter-1a24e7c5b683355335b115e5659eb6fe8c8d11dc.zip |
klippy: Report repo version as "dirty" if there are untracked python files
Check for untracked files in the klippy/extras/ and klippy/kinematics/
directories and report those files in the log. This helps identify
code modifications when inspecting a log.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/klippy.py')
-rw-r--r-- | klippy/klippy.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py index 8f2caf3b..d94612cf 100644 --- a/klippy/klippy.py +++ b/klippy/klippy.py @@ -343,12 +343,30 @@ def main(): else: logging.getLogger().setLevel(debuglevel) logging.info("Starting Klippy...") - start_args['software_version'] = util.get_git_version() + git_vers, git_status = util.get_git_version() + extra_files = [fname for code, fname in git_status + if (code in ('??', '!!') and fname.endswith('.py') + and (fname.startswith('klippy/kinematics/') + or fname.startswith('klippy/extras/')))] + modified_files = [fname for code, fname in git_status if code == 'M'] + extra_git_desc = "" + if extra_files: + if not git_vers.endswith('-dirty'): + git_vers = git_vers + '-dirty' + if len(extra_files) > 10: + extra_files[10:] = ["(+%d files)" % (len(extra_files) - 10,)] + extra_git_desc += "\nUntracked files: %s" % (', '.join(extra_files),) + if modified_files: + if len(modified_files) > 10: + modified_files[10:] = ["(+%d files)" % (len(modified_files) - 10,)] + extra_git_desc += "\nModified files: %s" % (', '.join(modified_files),) + start_args['software_version'] = git_vers start_args['cpu_info'] = util.get_cpu_info() if bglogger is not None: versions = "\n".join([ "Args: %s" % (sys.argv,), - "Git version: %s" % (repr(start_args['software_version']),), + "Git version: %s%s" % (repr(start_args['software_version']), + extra_git_desc), "CPU: %s" % (start_args['cpu_info'],), "Python: %s" % (repr(sys.version),)]) logging.info(versions) |