diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-06-17 10:41:19 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-06-17 12:44:26 +0200 |
commit | 9b8989da51d55ac3b4664ffcfd07abbb305ee8a9 (patch) | |
tree | a81761f00b82d7128f9d7ca5a6f3d6c72df3336e | |
parent | 5fd66ef6b6276675deb7e6be2d7e4483d2824048 (diff) | |
download | justbuild-9b8989da51d55ac3b4664ffcfd07abbb305ee8a9.tar.gz |
lint: add single-file overall report
To quickly understand where the problems found by the linter are,
an overall report can be useful, so that
just-mr --main lint build -P REPORT
immediately shows the problems found in the code. For convenience,
also include the patch to be applied to fix formating in the default
target.
-rw-r--r-- | lint/TARGETS | 13 | ||||
-rwxr-xr-x | lint/combined-report.py | 27 |
2 files changed, 40 insertions, 0 deletions
diff --git a/lint/TARGETS b/lint/TARGETS index b3963739..08598edc 100644 --- a/lint/TARGETS +++ b/lint/TARGETS @@ -1,6 +1,12 @@ { "": { "type": "install" , "tainted": ["lint", "test"] + , "deps": ["LINT"] + , "files": {"REPORT": "lint-report", "format.diff": "format.diff"} + } +, "LINT": + { "type": "install" + , "tainted": ["lint", "test"] , "dirs": [ ["LINT: clang-tidy", "clang-tidy"] , ["LINT: clang-format", "clang-format"] @@ -92,4 +98,11 @@ , ["@", "tests", "", "ALL"] ] } +, "lint-report": + { "type": "generic" + , "tainted": ["lint", "test"] + , "cmds": ["./combined-report.py"] + , "outs": ["report"] + , "deps": ["LINT", "combined-report.py"] + } } diff --git a/lint/combined-report.py b/lint/combined-report.py new file mode 100755 index 00000000..03006a0f --- /dev/null +++ b/lint/combined-report.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +# Copyright 2025 Huawei Cloud Computing Technology Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +with open("report", "w") as out: + for lint in sorted(os.listdir()): + if os.path.isdir(lint): + with open(os.path.join(lint, "report")) as f: + report = f.read() + if len(report) > 1: + out.write(lint + "\n") + out.write("".join( + [" " + line + "\n" + for line in report.splitlines()]) + "\n") |