#!/bin/sh ##--- NEW: ---------- ## ## Given a list of files of the form .../.../.R, ## ## Produce one large file, i.e. write to stdout ## 'cat'ting the files together with ## 1) Putting a HEADER in front ## 2) EDITing a few of the files ## 3) appending a FOOTER ... ## Should work WHEREVER this is called from : (cd `dirname $0`/.. RHOME=`pwd`; export RHOME ) RHOME=`cd ${RHOME}; pwd` # absolute FILES="$@" #Dbg> echo "RHOME=$RHOME"; echo #Dbg> echo "FILES=$FILES"; echo ; echo; exit ## 1) ---- Header ---- echo "postscript('All-Examples.ps'); iter <- 0; eigenval <- 1e-12; .Random.seed <- 1:3" ## 2) ---- edit a few of these files: for file in $FILES do bf=`basename $file .R` #Dbg: echo $bf >&2 if [ $bf = 'on.exit' ]; then sed -e '$s/$/par(opar)/' $file elif [ $bf = 'match.arg' ]; then sed -e '/^cent.*Error/s/^/##Test: /' $file elif [ $bf = 'menu' ]; then sed -e '6,$s/^/##INTERACTIVE> /' $file elif [ $bf = 'na.fail' ]; then sed -e '/^na\.fail/s/^/##Test: /' $file elif [ $bf = 'pictex' ]; then sed -e '6,$s/^/##LaTex /' $file elif [ $bf = 'postscript' ]; then sed -e '/^postscript(/s/^/## /' $file elif [ $bf = 'Random' ]; then sed -e '$s/$/.Random.seed <- 9:7/' $file elif [ $bf = 'solve' ]; then sed -e '/error:.*singular/s/^/## /' $file elif [ $bf = 'traceback' ]; then sed -e '/^[a-z]*(/s/^/##Test: /' $file elif [ $bf = 'dataentry' ]; then sed -e '/^data/s/^/##INTERACTIVE> /' $file elif [ $bf = 'edit' ]; then sed -e '/edit(/s/^/##INTERACTIVE> /; /^vi(/s/^/##INTERACTIVE> /' $file else cat $file fi done ## 3) ---- Footer ---- echo "dev.off(); quit('no')"