summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2025-06-17 10:41:19 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2025-06-17 12:44:26 +0200
commit9b8989da51d55ac3b4664ffcfd07abbb305ee8a9 (patch)
treea81761f00b82d7128f9d7ca5a6f3d6c72df3336e
parent5fd66ef6b6276675deb7e6be2d7e4483d2824048 (diff)
downloadjustbuild-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/TARGETS13
-rwxr-xr-xlint/combined-report.py27
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")