diff --git a/AuswertungKlausur/noten.sh b/AuswertungKlausur/noten.sh index 90db5588b3fe08e7934005b0c68d3d6fb49572f7..fb64e91494ad7aa3cd74b6db54847527d6f3d5c7 100755 --- a/AuswertungKlausur/noten.sh +++ b/AuswertungKlausur/noten.sh @@ -10,72 +10,82 @@ SRCREPRESENT=src/main/java/de/hdm_stuttgart/mi/sd1/task2/ChangeAmount.java TESTJAR=sd1_2019summer_exam-0.9-fat-tests.jar # Strings like e.g. "Aufgabe 2" referencing "Aufgabe 2: (30/50)" -declare -a MARKERS=("Aufgabe 1" "Aufgabe 2") +declare -a MARKERS=("Task 1" "Task 2") # Hands off beyond this line #-------------------------------------------------------------------------------------------- -zip=$1 -fbname=$(basename "$zip" .zip) +evaluateProject() { + + zip=$1 + fbname=$(basename "$zip" .zip) + + rm -rf /tmp/Reference + cp -r $PROJECTREF /tmp/Reference + pushd /tmp/Reference 1> /dev/null + mvn -T4 clean > /dev/null 2>&1 + rm -rf src/main/java + popd 1> /dev/null + + mkdir Unpack;pushd Unpack 1> /dev/null + unzip ../$fbname.zip > /dev/null + pomFileCount=`find . -name pom.xml|wc -l` + if [[ 1 = $pomFileCount ]]; then + projectDir=`find . -name pom.xml` + projectDir=${projectDir%/*} -rm -rf ~/results.log /tmp/Reference -cp -r $PROJECTREF /tmp/Reference -pushd /tmp/Reference - mvn -T4 clean > /dev/null 2>&1 - rm -rf src/main/java -popd + if [ -f "${projectDir}"/$SRCREPRESENT ]; then + cp -r /tmp/Reference . + cp -r "$projectDir"/src/main/java Reference/src/main + pushd Reference 1> /dev/null + mvn -T4 compile test-compile > /dev/null 2>&1 + if [ $? -eq 0 ] ; then + mvn -T4 -Dmaven.test.skip=true package > /dev/null 2>&1 + result="" -mkdir Unpack;pushd Unpack -unzip ../$fbname.zip > /dev/null -pomFileCount=`find . -name pom.xml|wc -l` -if [[ 1 = $pomFileCount ]]; then - projectDir=`find . -name pom.xml` - projectDir=${projectDir%/*} - echo "Found project $projectDir" + mvnOutput=`java -jar target/$TESTJAR` - if [ -f "${projectDir}"/$SRCREPRESENT ]; then - echo "Found $projectDir/$SRCREPRESENT" - cp -r /tmp/Reference . - cp -r "$projectDir"/src/main/java Reference/src/main - pushd Reference - mvn -T4 compile test-compile > /dev/null 2>&1 - if [ $? -eq 0 ] ; then - mvn -T4 -Dmaven.test.skip=true package > /dev/null 2>&1 - result="" - for mark in "${MARKERS[@]}"; do - result+=`java -jar target/$TESTJAR | grep "$mark"|sed 's/^[ ]*//'` - result+=" " - done - else - echo "$projectDir does not compile" - exit 1; + # for mark in "${MARKERS[@]}"; do + # result+=`java -jar target/$TESTJAR | grep "$mark"|sed 's/^[ ]*//'` + # result+=" " + # done + result=$mvnOutput + + else + result="$projectDir does not compile" + fi + popd 1> /dev/null + echo "$fbname" + echo "$result" + + #Cleanup user project + pushd "$projectDir" 1> /dev/null + rm -rf *.iml .idea A1.log + mvn clean > /dev/null 2>&1 + popd 1> /dev/null + rm ../"$fbname".zip + zip -r ../"$fbname".zip "$projectDir" > /dev/null 2>&1 + else + echo "$fbname : ${projectDir}/$SRCREPRESENT not found" + exit 1 + fi + else + echo "$fbname : Found more than one directory component" + exit 1 fi - popd - echo "$fbname $result" >> ~/results.log - - #Cleanup user project - pushd "$projectDir" - rm -rf *.iml .idea A1.log - mvn clean > /dev/null 2>&1 - popd - rm ../"$fbname".zip - zip -r ../"$fbname".zip "$projectDir" > /dev/null 2>&1 - else - echo "$fbname : ${projectDir}/$SRCREPRESENT not found" - exit 1 - fi -else - echo "$fbname : Found more than one directory component" >> ~/results.log - exit 1 -fi -popd # return from Unpack -rm -rf Unpack + popd 1> /dev/null # return from Unpack + rm -rf Unpack + + echo "-----------------------------------------------------" + uid=`echo $1| sed -e s/.zip//` + grep $uid ~/bonusprojekte.csv + echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++" +} + +for zip in "$@" +do + evaluateProject $zip +done -echo "---------------------------------------" -cat ~/results.log -echo "+++++++++++++++++++++++++++++++++++++++" -uid=`echo $1| sed -e s/.zip//` -grep $uid ~/bonusprojekte.csv -echo "---------------------------------------" #end