1#!/bin/sh
2
3set -eu
4
5usage() {
6    echo "Usage: $0 ANALYSIS_OUTPUT_DIR" >&2
7    exit 2
8}
9
10[ $# -eq 1 ] || usage
11
12analysisOutputDir=$1
13
14# Load settings and helpers
15. "$(dirname "$0")/action.helpers"
16. "$(dirname "$0")/action.settings"
17
18cleanRegressionsTxt=${analysisOutputDir}/clean_regressions.txt
19
20cleanRegressionCount=$("${ECLAIR_BIN_DIR}eclair_report" \
21    "-db='${analysisOutputDir}/PROJECT.ecd'" \
22    "-sel_unfixed=unfixed" \
23    "-sel_tag_glob=violation_only,kind,violation" \
24    "-sel_tag_glob=clean_added,clean,added" \
25    "-report_counts_txt=service,'${cleanRegressionsTxt}'" \
26    "-print='',reports_count()")
27
28if [ "${cleanRegressionCount}" -gt 0 ]; then
29    {
30        echo "Failure: ${cleanRegressionCount} regressions found for clean guidelines"
31        sed -n '/^Number of.*$/,/^$/{ /^Number of.*$/! { /^$/! p } }' ${cleanRegressionsTxt}
32    } > ${cleanRegressionsLog}
33    rm ${cleanRegressionsTxt}
34    exit 1
35else
36    echo "Success: No regressions for clean guidelines" > ${cleanRegressionsLog}
37    rm ${cleanRegressionsTxt}
38fi
39