aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/klippy.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2023-04-26 18:24:39 -0400
committerKevin O'Connor <kevin@koconnor.net>2023-05-02 11:40:18 -0400
commit1a24e7c5b683355335b115e5659eb6fe8c8d11dc (patch)
treed0ea04389877845545fb0f2de2561f5782d00d74 /klippy/klippy.py
parent3b0729c94932f4df0298a7c992022f54a5454428 (diff)
downloadkutter-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.py22
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)