From c41a06bbd92c23881f2d324db3cb4aaab09906dc Mon Sep 17 00:00:00 2001 From: James Knight Date: Tue, 1 Jul 2025 14:56:42 -0400 Subject: [PATCH] utils/check-package: handle missing files When running check-package before completing commits for a change, if any files are setup for removal, check-package will throw FileNotFoundError exceptions instead of generating a warning state. For example: $ utils/docker-run make check-package Traceback (most recent call last): ... FileNotFoundError: [Errno 2] No such file or directory: 'package/.../0001-some-removed-patch.patch' make: *** [Makefile:1264: check-package] Error 1 This commit will now catch FileNotFoundError and populate a warning message: $ utils/docker-run make check-package package/.../0001-some-removed-patch.patch: missing; unstaged file removal? package/.../0002-another-removed-patch.patch: missing; unstaged file removal? 427843 lines processed 3 warnings generated make: *** [Makefile:1264: check-package] Error 1 Signed-off-by: James Knight Reviewed-by: Romain Naour Signed-off-by: Julien Olivain --- utils/check-package | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/utils/check-package b/utils/check-package index a5ecc2eed8..8781d21d8f 100755 --- a/utils/check-package +++ b/utils/check-package @@ -257,18 +257,23 @@ def check_file_using_lib(fname): nwarnings += warn lastline = "" - with open(fname, "r", errors="surrogateescape") as f: - for lineno, text in enumerate(f): - nlines += 1 - for name, cf in objects: - if cf.disable.search(lastline): - continue - line_sts = cf.check_line(lineno + 1, text) - warn, fail = print_warnings(line_sts, name in xfail) - if fail > 0: - failed.add(name) - nwarnings += warn - lastline = text + try: + with open(fname, "r", errors="surrogateescape") as f: + for lineno, text in enumerate(f): + nlines += 1 + for name, cf in objects: + if cf.disable.search(lastline): + continue + line_sts = cf.check_line(lineno + 1, text) + warn, fail = print_warnings(line_sts, name in xfail) + if fail > 0: + failed.add(name) + nwarnings += warn + lastline = text + except FileNotFoundError: + print(f"{fname}: missing; unstaged file removal?") + nwarnings += 1 + return nwarnings, nlines for name, cf in objects: warn, fail = print_warnings(cf.after(), name in xfail)