blob: d0070aa7d76dd9a3cd3acfe6a197ecdd4cd25568 [file] [log] [blame]
Paul Sokolovsky496a28e2022-09-06 15:56:04 +03001#!/usr/bin/env python3
2#
3# Copyright (c) 2022 Arm Limited. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6
7# Script to produce cumulative "diff" report from ECLAIR individual
8# per-service diff reports.
9
10import sys
11import glob
12
13
14def lcut(l, prefix):
15 if l.startswith(prefix):
16 l = l[len(prefix):]
17 return l
18
19
20def process_file(fname, del_or_add):
21 with open(fname) as f:
22 for l in f:
23 l = l.rstrip()
24 if not l:
25 break
26 for l in f:
27 if l.startswith("service "):
28 l = lcut(l, "service ")
29 if del_or_add == "del":
30 l = "Resolved for " + l
31 else:
32 l = "Added for " + l
33 elif l.startswith("End of report"):
34 l = "---------------\n"
35 sys.stdout.write(l)
36
37
38path = "."
39if len(sys.argv) > 1:
40 path = sys.argv[1]
41
42files = sorted(glob.glob(path + "/*.etr"))
43#print(files)
44
45
46header_done = False
47
48for f in files:
49 if "/B.EXPLAIN" in f:
50 continue
51 comp = f.rsplit(".", 2)
52# print("*", f, comp)
53 if not header_done:
54 print("=== MISRA delta report for the patch (issues resolved and/or newly added) ===\n")
55 header_done = True
56 process_file(f, comp[-2])
57
58if not header_done:
59 print("No new MISRA issues detected, good work!")