#!/bin/csh -f # Updated for v1.2: # * added markup for W3C validation set INFO = "Faqbuilder 1.2 by Lars Rohrbach (larsrohr at eecs dot berkeley dot edu)" set USAGE = "Usage: faqbuilder pathtodirectory" set OUTPUTNAME = index.html set path = (/usr/bin /usr/sbin /usr/sww/bin /usr/local/bin /bin) set DATESTAMP=`date '+%d%b%y'` set TEMPFILE=/tmp/faqbuilder.tmp.$DATESTAMP cp /dev/null $TEMPFILE if ($#argv != 1 || ! -d $1 ) then echo $INFO echo $USAGE exit 1 endif set DIR = $1 onintr cleanup pushd $DIR > /dev/null || exit 2 if (! -e .FAQBUILDER) then echo "No .FAQBUILDER file found in directory" $DIR echo "Please create such a file, so I know it's safe to work in that directory." goto cleanup endif # if the output is the newest file in the directory, don't do anything. if ( `ls -at1 | head -1` == $OUTPUTNAME ) goto cleanup if (-e .title) then set TITLE = `cat .title` else set TITLE = "Frequently Asked Questions" endif cat >! $OUTPUTNAME <<++EOF++ ${TITLE} ++EOF++ if (-e .background) then echo '' >> $OUTPUTNAME else echo '' >> $OUTPUTNAME endif if (-e .header) then cat .header >> $OUTPUTNAME endif echo "

${TITLE}

" >> $OUTPUTNAME if (-e .intro) then cat .intro >> $OUTPUTNAME echo "
" >> $OUTPUTNAME endif #Now, let's generate a contents list, and prepare the questions/answers: echo "
" >> $OUTPUTNAME @ count =0 foreach category ( `ls -1 | grep -v index.html | grep -v index.php | cut -d. -f1 | sort -u` ) set catname = `echo $category | sed 's/_/ /g'` echo "

${catname}

" >> $OUTPUTNAME echo "

${catname}

" >> $TEMPFILE echo "
" >> $OUTPUTNAME echo "
" >> $TEMPFILE foreach item ( `ls ${category}.* ` ) if (! -d $item ) then @ count++ echo "Q${count}: ' >>$OUTPUTNAME echo "'"Q${count}: " >> $TEMPFILE set cutoff = `grep -n ^$ $item | head -1 | cut -d: -f1` set len = `wc -l $item | awk '{print $1}'` head -`expr $cutoff - 1` $item >> $OUTPUTNAME head -`expr $cutoff - 1` $item >> $TEMPFILE echo "
" >> $OUTPUTNAME echo "


" >> $TEMPFILE tail -`expr $len - $cutoff ` $item >> $TEMPFILE echo "

" >> $TEMPFILE endif end echo "
" >> $OUTPUTNAME echo " " >> $OUTPUTNAME echo "
" >> $TEMPFILE echo " " >> $TEMPFILE end echo "
" >> $OUTPUTNAME echo "
" >> $OUTPUTNAME cat $TEMPFILE >> $OUTPUTNAME if (-e .footer) then cat .footer >> $OUTPUTNAME endif cat >> $OUTPUTNAME <<++EOF++ ++EOF++ cleanup: rm $TEMPFILE popd > /dev/null