#!/usr/bin/env bash set -e AUTOGRADE_DIR="lab1_files/autograde" STUDENTS_FILE="$AUTOGRADE_DIR/students.txt" APPEND_FILE="$AUTOGRADE_DIR/GRADING/APPEND.py" if [ ! -f "$STUDENTS_FILE" ]; then echo "students.txt not found" exit 1 fi if [ ! -f "$APPEND_FILE" ]; then echo "APPEND.py not found" exit 1 fi lookup_name() { id="$1" awk -v id="$id" ' $1==id { last=$NF first="" for(i=2;i/dev/null | head -n 1)" [ -n "$pyfile" ] || continue outfile="$AUTOGRADE_DIR/dcs211_lab1_${id}.txt" cat > "$outfile" <> "$graded" set +e output="$(python3 "$graded" 2>&1)" set -e { echo echo "---- AUTOGRADE OUTPUT ----" echo "$output" echo "---- END AUTOGRADE OUTPUT ----" } >> "$outfile" score="$(echo "$output" | tail -n 1 | grep -Eo '[0-9]+[[:space:]]*/[[:space:]]*[0-9]+' || echo N/A)" sed -i.bak "s/STUDENT_SCORE/$score/" "$outfile" && rm "$outfile.bak" echo "Graded $id" done echo "Grading complete."