RST

Info about RST.

For more information about RST in general and the scripts it uses, see http://www.student.cs.uwaterloo.ca/~isg/scripts/rst/

Also see RSTVersionTwo for details about planned coming revisions.

Any courses utilizing RSTPublicTests or DistributedRST should also see RSTTestServers

Related Pages

Assignment Printing

Student code is printed using the printOut command with the -g flag. This will send a print request to the high-speed printers at the DC Graphics Services location. The command will output information about what files have been printed, and cc the ISC for the course on the e-mail with the instructions for Graphics.

The turnaround time for a print job is 5 hours during a normal workday. So, if you send a request at night, it should be ready in the early afternoon the following day. If you wish to check on the progress of your print request, use the command lpq -Pcs_isg. Once the job is printed, an e-mail will be sent to the course account notifying you.

RST can also be used for PrintingMarmosetAssignments if desired.

Including student-submitted PDF files in OUTPUT.ps

See RSTIncludingPDFs.

pdfAll

As of Spring 2010, RST will generate PDF and postscript files automatically by default. This makes the following script unnecessary, unless only postscripts are generated but PDFs are later desired.

#!/software/.admin/bins/bin/bash

for i in `ls`; do
    if [[ -s $i/OUTPUT.ps ]]; then
        echo $i
        cd $i
        ps2pdf OUTPUT.ps
        cd -
    fi
done

Untested correctness edit: the first line should likely be something like for i in "$(dirname "$0")"/*; do for two reasons: handle filenames with spaces properly, and allow the script to work properly regardless of the current working directory.

Managing and Debugging RST Test Suite Directories

It is always possible that you will find small bugs or errors in your test suites. When making corrections, or experimenting with changes, it can be useful to leave the old directories intact. Changing the names of directories every time you create a new one can be tedious. Using symlinks is a better strategy.

Create appropriately named directories containing each version of the test suite, e.g. test.pta, test.ptb, etc... Have a symlink that points to the one that is currently being used, and point RST at this symlink every time you want to run the test suite. Create symlinks with the ln command:

ln -sv test.pt test.pta
This way, when you come back to an old assignment directory, you can easily tell which test suite directory was used for making the print run.

Understanding mangled file names

If a file name that is not alphanumberic (i.e. my-fun.ss) is passed to RST, the filename will be mangled to something random to ensure that LaTeX can read it. In the results of the RST run, if there are gibberish files among the list of files created, in order to see what file each one represents, open the OUTPUT.tex file to see which files have been given which new names.

Note: In some cases this doesn't happen automatically. A known example is when the assignment name in handin or marking has an underscore. So to avoid such scenarios, avoid underscores and hyphens in assignment names.

Interesting Note

When sending the assignments to printer, there is a script in the printOut command that calculates the cost of printing at Graphics, based on the Graphics rates. However, because of the graphics rates, if a print job has more than a certain number of pages, the price per page drops. For this reason, if the threshold is 500 pages, for example, it is more expensive to print 499 pages than it is to print 501 pages. Anyone who is interested in looking at this and seeing if they can find a way to minimize the price can take a look inside the printOut script.

Topic revision: r19 - 2011-10-26 - OmarNafees
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback