DEPENDENCIES POSIX utils, rename, qutebrowser FUNCTIONALITY The 'init', 'build', and 'mark' components, and 'summarise' scripts are functional. INSTRUCTIONS First, put the submissions.zip file from canvas in the top level of the directory and navigate to the scripts directory. Then run make init, in order to set up the submissions appropriately. This makes use of the ``-execdir'' flag to ``find'', so requires current directory to not be in $PATH Build all of the submissions with 'make build' from within the scripts directory. Mark the submissions with 'make mark'. Email the marking results with 'make email' (assuming that you have the 'mail' program set up on your machine). Summarise the marks with 'summarise', taking the name of the marks file as argument. MECHANISM A makefile controls the operation, calling shell scripts to perform each operation. 'make build' calls the 'build' shell script to generate an html file for every (case-insensitive) Rmd file, with a given timeout. If successful, the html file is sent to the 'output' directory. In the case of failure to compile within the time limit, a log of stderr is recorded in the basename of the Rmd file in the 'logs' directory. All of the original Rmd files have their suffixes changed to either '.buildsuccess' or '.buildfailure', to indicate their state to the make process, thereby allowing all operations to be idempotent. CONNECTING TO UNI VM Use openfortivpn to set up a VPN. Mount a directory with cifs using: sudo mount -t cifs -o username=username,domain=uoa,vers=2.1 \ //files.auckland.ac.nz/MyHome $YOUR_LOCAL_DIR