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>
This commit is contained in:
Kevin O'Connor 2023-04-26 18:24:39 -04:00
parent 3b0729c949
commit 1a24e7c5b6
3 changed files with 37 additions and 9 deletions

View file

@ -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)