blob: c2152421273ece552a05cd15cf4c749cca3821a4 [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
Paul Sokolovskya2b13442022-09-29 22:53:23 +030012import os
13from string import Template
Paul Sokolovsky496a28e2022-09-06 15:56:04 +030014
15
16def lcut(l, prefix):
17 if l.startswith(prefix):
18 l = l[len(prefix):]
19 return l
20
21
22def process_file(fname, del_or_add):
23 with open(fname) as f:
24 for l in f:
25 l = l.rstrip()
26 if not l:
27 break
28 for l in f:
29 if l.startswith("service "):
30 l = lcut(l, "service ")
31 if del_or_add == "del":
32 l = "Resolved for " + l
33 else:
34 l = "Added for " + l
35 elif l.startswith("End of report"):
36 l = "---------------\n"
37 sys.stdout.write(l)
38
39
40path = "."
41if len(sys.argv) > 1:
42 path = sys.argv[1]
43
44files = sorted(glob.glob(path + "/*.etr"))
45#print(files)
46
Paul Sokolovskya2b13442022-09-29 22:53:23 +030047EMPTY_REPORT_HEADER = """\
48No new MISRA issues detected, good work!
49"""
50
51NONEMPTY_REPORT_HEADER = Template("""\
52MISRA delta report: ${BUILD_URL}artifact/
53
54= MISRA delta report for the patch (issues resolved and/or newly added) =
55""").safe_substitute(os.environ)
Paul Sokolovsky496a28e2022-09-06 15:56:04 +030056
57header_done = False
58
59for f in files:
60 if "/B.EXPLAIN" in f:
61 continue
62 comp = f.rsplit(".", 2)
63# print("*", f, comp)
64 if not header_done:
Paul Sokolovskya2b13442022-09-29 22:53:23 +030065 print(NONEMPTY_REPORT_HEADER)
Paul Sokolovsky496a28e2022-09-06 15:56:04 +030066 header_done = True
67 process_file(f, comp[-2])
68
69if not header_done:
Paul Sokolovskya2b13442022-09-29 22:53:23 +030070 print(EMPTY_REPORT_HEADER)