From 9b8989da51d55ac3b4664ffcfd07abbb305ee8a9 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Tue, 17 Jun 2025 10:41:19 +0200 Subject: 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. --- lint/TARGETS | 13 +++++++++++++ lint/combined-report.py | 27 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 lint/combined-report.py (limited to 'lint') diff --git a/lint/TARGETS b/lint/TARGETS index b3963739..08598edc 100644 --- a/lint/TARGETS +++ b/lint/TARGETS @@ -1,4 +1,10 @@ { "": + { "type": "install" + , "tainted": ["lint", "test"] + , "deps": ["LINT"] + , "files": {"REPORT": "lint-report", "format.diff": "format.diff"} + } +, "LINT": { "type": "install" , "tainted": ["lint", "test"] , "dirs": @@ -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") -- cgit v1.2.3