#!/bin/bash

set -e

read-and-count-issues() {
    issues="$(grep -e "^\\[WARNING\\] .*.java:\\[\\d\+,\\d\+\\]" | \
        sed -E 's/^\[WARNING\] .*.java:\[[0-9,]+\] \[//g;s/\].*$//' | \
        sort)"
    echo "$issues" | uniq -c
    printf "%4d [TOTAL]\n" "$(echo "$issues" | wc -l)"
}

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

echo "Before refactoring:"
cat "$SCRIPT_DIR/before-refactor.txt" | read-and-count-issues
echo ""

cd "$SCRIPT_DIR/sources"
mvn clean 2>&1 >/dev/null
echo "After refactoring:"
mvn compile 2>&1 | read-and-count-issues