#!/bin/bash

BASE_COMMIT=95a80f598fc57c60aed3737c60ee437d94eb8540
LABS=`git diff $BASE_COMMIT --stat | grep -o "lab[0-9]" | uniq`

if [ "$LABS" = "" ]; then
    echo "No solutions provided. Skip this time."
    exit 0
fi

failed=0

pwd=`pwd`
summary=$pwd/.score_summary

echo -n > $summary
for lab in $LABS; do
    pushd $lab > /dev/null
    if ! make grade > .score 2>&1; then
        failed=`echo $lab | grep -o [0-9]`
    fi
    score=`egrep -o "Score: [0-9]+/[0-9]+" .score`
    echo "$lab $score" >> $summary
    make clean > /dev/null
    popd > /dev/null
done

echo "Labs with changes detected: " $LABS
echo
echo "============================== Summary =============================="
cat $summary
rm $summary
echo

for lab in $LABS; do
    echo "================================ $lab ==============================="
    cat $lab/.score
    rm $lab/.score
done

exit $failed