-
Notifications
You must be signed in to change notification settings - Fork 0
/
moss.sh
executable file
·44 lines (36 loc) · 914 Bytes
/
moss.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/zsh
# Ensure at least 1 file was passed
if [ "$#" -lt 1 ]; then
echo "Insufficient arguments; provide at least 1 submission.zip from canvas."
exit 64
fi
DATE=`date +%d%m%y`
mkdir $DATE
# Unzip each passed zip (usecase for multiple sections)
for x in $*
do
NAME=`basename $x`
cp $x $DATE
unzip -qq ./$DATE/$NAME -d $DATE
rm ./$DATE/$NAME
done
cd $DATE
# Unzip each submission zip to its own dir
for x in ./*.zip
do
NAME=`basename $x .zip`
unzip -qq $x -d $NAME
cd $NAME
find . -mindepth 2 -type f -exec mv -f -- {} . \;
find . -depth -mindepth 1 -type d -empty -exec rmdir {} \;
cd ..
done
# Rm each submission zip
rm *.zip
# Submit to moss for report; wget report url
echo "Submitting files to MOSS"
NAME=`../submit.pl -l java -d ./*/**.java | tail -n 1`
wget -r -q $NAME -O ../$DATE.html
echo Saved report to $DATE.html
# Cleanup
rm -rf ../$DATE