#!/bin/bash

########################################################################
# File name:  runPA2.sh
# Author:			chadd williams
# Date:       2/28/2018
# Class:      CS 460
# Assignment: PA2
# Purpose:    grading script for PA2
########################################################################


########################################################################
# Section: move to the correct directory
########################################################################

cd PA2

# capture the current directory
homedir=$(pwd)

# PA2 contains each team's PA2_punetid_punetid.sh file
# PA2 contains Chadd's CS460_SysCalls
# PA2 contains Chadd's first.sh

########################################################################
# Section: Set up link between my CS460_SysCalls and what students used
########################################################################

files=$(grep CS460_SysCalls_ *.sh | sed -e 's/.*\(CS460_SysCalls_[[:alnum:]]*\).*/\1/g')

for file in $files
do
	ln -sf CS460_SysCalls $file
done


########################################################################
# Section: Run and diff against expected output
########################################################################

shFiles=$(ls PA2*.sh)

for file in $shFiles
do
	cd $homedir
	
	# cleanup from last run
	rm z*.out
	
	./$file /etc/passwd s.$file.out > $file.out 2> $file.err
	
	# you never know which directory student code will leave you in.
	cd $homedir
	
	# beware, imperfect diffs may still be correct!
	diff -ZbB $file.out expected.out > diff.$file.out 
	
done

cd ..
