4.5. Running a Command Upon Submission

Finally, websubmit can invoke a designated program or script each time an assignment is made. The intention is for that program to trigger automatic grading of the assignment. The program to be invoked is specified via a <grader> element.

<assignment> 
  <title>CS361: Keeping Your Distance</title> 
  <roster>/home/zeil/cs361/Assignments/f10/roster.dat</roster>
  <directory>/home/zeil/cs361Submissions/editd</directory> 
  <file> 
    <filter>editdist.cpp</filter> 
    <text>Your implementation of the editDistance function.</text> 
    <required>1</required> 
  </file>
  <file> 
    <filter>README.txt</filter>
    <text>Notes to the grader, if any.</text> 
  </file>
  <solutionDirectory>/home/zeil/cs361/Solutions/editd</solutionDirectory>
  <solutionDate>7/31/2010</solutionDate>
  <grader>/home/zeil/bin/requestGrading.pl /home/zeil/cs361/Build/Assignments/sum10/distance/distance.pl</grader>
</assignment>

The text of the <grader> element will be passed to the shell for execution, with two additional command arguments appended:

This script could do grading (the example shown queues up the assignment submissions for handling by my autograder program) or might do something simpler such as send an email to the instructor or graders informing them of the submission.

For security reasons, the command named in this element must be executable by group faculty but not executable by the world.