#!/bin/bash # $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/test_scripts/faulks/Attic/make_summary,v 1.2 2003/12/05 15:14:49 edhill Exp $ # Ed Hill # The purpose of this script is to create HTML summaries of the # directories produced by the "parse_emails" script. usage() { echo echo "Usage: $0 [OPTIONS]" echo echo "where possible OPTIONS are:" echo " (-help|-h) print usage" echo " (-date |-d )PERIOD run for PERIOD=\"YYYY_MM\"" echo " [def=\"$PERIOD\"]" echo exit 1 } # defaults PERIOD=`date +%Y`"_"`date +%m` # Parse options ac_prev= for ac_option ; do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` case $ac_option in -help | --help | -h | --h) usage ;; -date | --date | -d | --d) ac_prev=PERIOD ;; --date=* | -date=*) PERIOD=$ac_optarg ;; *) echo "Error: don't understand argument \"$ac_option\"" usage ;; esac done INDIR="/u/u0/httpd/html/testing/results/$PERIOD" OUTDIR="/u/u0/httpd/html/testing/summary" OUTFILE=$OUTDIR"/summary_"$PERIOD".html" # Create the summary file for $PERIOD echo -n "Creating the summary file for the period \"$PERIOD\" ... " cat > $OUTFILE << EOF MITgcm testing summary EOF # all_files=`find $INDIR -name summary.txt` all_files=`( cd $INDIR ; find . -name summary.txt )` for f in $all_files ; do file=$INDIR"/"${f/.\//} grep "^fresults" $file > /dev/null 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then continue fi url=`echo $file | sed -e 's|/u/edhill/www|http://mitgcm.org/~edhill|'` url=`echo $url | sed -e 's|summary.txt||'` MACH= fresults= color="#eeeeee" source $file echo $fresults | grep FAIL > /dev/null 2>&1 if test "x$?" = x0 ; then color="#ff99ff" fi echo $fresults | grep pass > /dev/null 2>&1 if test "x$?" = x0 ; then color="#99ffff" fi gm_state=`echo $file | sed -e 's/summary.txt/genmake_state/g'` if test -r $gm_state ; then grep '^OPTFILE=' $gm_state > ./tmp_state source ./tmp_state else optfile="unknown" fi optfile=`echo $OPTFILE | awk -F '/' '{print $NF}'` echo "" >> $OUTFILE echo "" >> $OUTFILE echo "" >> $OUTFILE for i in $fresults ; do if test "x$i" = xN ; then echo -n "" >> $OUTFILE else echo -n "" >> $OUTFILE fi done echo "" >> $OUTFILE echo "" >> $OUTFILE done cat >> $OUTFILE << EOF
$MACH$DATE$i$i$optfile
EOF chmod a+r $OUTFILE echo "done" # Create the "latest" links echo "Creating the \"latest\" file for each machine: " LATEST=$OUTDIR"/latest_"$PERIOD".html" cat > $LATEST << EOF MITgcm testing summary

The following are the most recent MITgcm testing runs for the time period $PERIOD.

The machine naming scheme is:

Machine "Nickname" Notes
faulks.lcs.mit.edu "faulks" The original test box: RH GCC 2.96
shelley.lcs.mit.edu "shelley" RH 9 w/ GCC 3.2.2
cg01.lcs.mit.edu cluster "myrinet"
Halem Alpha cluster "halem"

EOF color="#bbffdd" MACHINES="faulks shelley myrinet halem" ( cd $INDIR ; ls -1 ) > ./dir_all for mname in $MACHINES ; do echo " $mname" if test "x$color" = x#bbffdd ; then color="#bbddff" else color="#bbffdd" fi dir_list=`grep $mname ./dir_all` echo -n "" > ./mlist for i in $dir_list ; do dir=$INDIR"/"$i OPTFILE= if test -r $dir/summary.txt ; then comm=`grep 'OPTFILE=' $dir/summary.txt` eval $comm OPTFILE=${OPTFILE##*/} fi if test "x$OPTFILE" = x -a -r "$dir/genmake_state" ; then comm=`grep 'OPTFILE=' $dir/genmake_state` eval $comm OPTFILE=${OPTFILE##*/} fi if test "x$OPTFILE" = x ; then comm=`grep '^# OPTFILE=' $dir/*/Makefile | head -1 | sed -e 's|^# ||'` eval $comm OPTFILE=${OPTFILE##*/} fi if test "x$OPTFILE" = x ; then OPTFILE=none fi DAY=`echo $i | sed -e 's|_|\n|g' | awk '(length($1)==8 && substr($1,0,3)=="200")'` echo "$OPTFILE $DAY $i" >> ./mlist done # helpful for debugging # cat ./mlist # Do we have any data? If so, create the latest pointer. num=`wc -l ./mlist | awk '{print $1}'` if test $num -gt 0 ; then optfiles=`cat ./mlist | cut -d " " -f 1 | sort | uniq` for i in $optfiles ; do ldir=`grep "^$i " ./mlist | sort -r | head -1 | cut -d " " -f 3` URL="../results/$PERIOD/$ldir" cat <>$LATEST EOF done fi done cat >> $LATEST << EOF
"Nickname" OPTFILE Name Date (YYYYMMDD)
$mname $i $DAY
EOF rm -f ./dir_all ./mlist CURR_PER=`date +%Y`"_"`date +%m` if test "x$PERIOD" = "x$CURR_PER" ; then ( cd $OUTDIR rm -f latest.html ln -s $LATEST latest.html # cd .. # rm -f latest.html # ln -s summary/latest.html latest.html ) fi