os_kernel_lab/labcodes/autotest.sh
2013-09-17 22:21:48 +08:00

42 lines
883 B
Bash
Executable File

#!/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