From 20a8517caf7f6ad947daccbc7c9741db01010b84 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 8 Aug 2023 14:19:37 +0200 Subject: [PATCH] [frama-c-script] better error handling for list-files command --- share/analysis-scripts/list_files.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/share/analysis-scripts/list_files.py b/share/analysis-scripts/list_files.py index 37e5a8bc7ff..20727d9d98f 100755 --- a/share/analysis-scripts/list_files.py +++ b/share/analysis-scripts/list_files.py @@ -80,13 +80,17 @@ print("") files_defining_main = set() re_main = re.compile(r"(int|void)\s+main\s*\([^)]*\)\s*\{") -for fname, file_for_fcmake in files: - assert os.path.exists(fname), "file does not exist: %s" % fname - with open(fname, "r") as content_file: - content = content_file.read() - res = re.search(re_main, content) - if res is not None: - files_defining_main.add(file_for_fcmake) +for fname, file_for_fcmake in sorted(files): + try: + with open(fname, "r") as content_file: + content = content_file.read() + res = re.search(re_main, content) + if res is not None: + files_defining_main.add(file_for_fcmake) + except OSError: + print( + f"warning: could not read file '{fname}', mentioned in '{arg}'. Skipping check of 'main' function." + ) if files_defining_main != []: print("") -- GitLab