#!/bin/csh # This is "cgihtml", which is used to convert cgiwrite output to # comma separated values (csv) format using cgiread in R, and then # to make an html page with the data as a table in the middle. # The required arguments are the cgiwrite output file name, # the name of the file to be produced (or overwritten), and the # name of a template html file containing a line with just "TABLE" # where the table goes. # Check for arguments if ( $# != 3 ) then echo Usage: cgihtml dbName htmlOutName htmlInName exit endif # check files exist if (! -e $1) then echo $1 does not exist exit endif if (-s $1 == 0) then echo $1 is empty exit endif echo $1 > cgireadDBfile.tmp echo $2 > cgihtmlOutfile.tmp if (! -e $3) then echo $3 does not exist exit endif if (-s $3 == 0) then echo $3 is empty exit endif echo $3 > cgihtmlInfile.tmp ########## Part 1: db to *.csv ########### # erase log file if it exists, then run R program if (-e cgireadlog.tmp) then rm -f cgireadlog.tmp endif set tmpfile = `mktemp -u /tmp/cgiwrite.XXXXXX` /usr/statlocal/bin/R --no-restore --no-save --no-readline < cgiread.R >& $tmpfile if (-e $tmpfile) then rm -f $tmpfile endif if (-e cgireadlog.tmp) then cat cgireadlog.tmp rm -f cgireadlog.tmp else echo Sorry, something went wrong! if (-e cgireadDBfile.tmp) then rm -f cgireadDBfile.tmp endif if (-e cgihtmlInfile.tmp) then rm -f cgihtmlInfile.tmp endif if (-e cgihtmlOutfile.tmp) then rm -f cgihtmlOutfile.tmp endif exit endif ########## Part 2: csv to html ########### # erase log file if it exists, then run R program if (-e cgihtmllog.tmp) then rm -f cgihtmllog.tmp endif set tmpfile = `mktemp -u /tmp/cgihtml.XXXXXX` /usr/statlocal/bin/R --no-restore --no-save --no-readline < cgihtml.R >& $tmpfile if (-e cgireadDBfile.tmp) then rm -f cgireadDBfile.tmp endif if (-e $tmpfile) then rm -f $tmpfile endif if (-e cgihtmllog.tmp) then cat cgihtmllog.tmp rm -f cgihtmllog.tmp else echo Sorry, something went wrong! endif if (-e cgireadDBfile.tmp) then rm -f cgireadDBfile.tmp endif if (-e cgihtmlInfile.tmp) then rm -f cgihtmlInfile.tmp endif if (-e cgihtmlOutfile.tmp) then rm -f cgihtmlOutfile.tmp endif