#!/bin/tcsh -f if ( ! -e .val.vars ) then echo 0 >> .val.vars echo 0 >> .val.vars echo 0 >> .val.vars echo 0 >> .val.vars endif set failures = `head -1 .val.vars | tail -1` set passes = `head -2 .val.vars | tail -1` set unsupported = `head -3 .val.vars | tail -1` set unknown = `head -4 .val.vars | tail -1` set dir = $1 set file = $2 echo -n "File $dir/$file " set home = `pwd` set result = '' set message = '' cd $dir #(chemsh $file > $file:r.log ) >& $file:r.err cat < job.chm set code [ catch {source $file } ret ] set file [ open "ret" "w" ] puts \$file \$ret close \$file set file [ open "status" "w" ] puts \$file \$code close \$file EOF (time chemsh job.chm > $file:r.log ) >& $file:r.err #rm -r job.chm set rstat = $status if ( $rstat != 0 ) then echo -n " -------- ChemShell CRASHED --------- !" echo "crash" > status endif set stat = `cat status` set ret = ( `cat ret`) if ( $#ret == "0" ) set ret = ' ' if ( "$stat" != "0" ) then @ failures ++ set result = F set message = `tail -2 $file:r.log | head -1` set a = `head -2 $file:r.err | tail -1` set message = "$message $a $ret" else cat $file:r.err >> $file:r.log if ( $ret[1] == "0" || $ret[1] == "OK" || $ret[1] == "ok" ) then @ passes ++ set result = P set message = "$ret" goto endsel endif if ( $ret[1] == "unsupported" || $ret[1] == "Unsupported" ) then @ unsupported ++ set result = M set message = "$ret" goto endsel endif @ unknown ++ set result = U endsel: endif set utime = `tail -1 $file:r.err | cut -du -f1` # rm -f $file:r.log #job.chm ret status # rm -f $file:r.err cd $home set message = `echo $message | head -1 | cut -c1-90` echo "$result $message $utime" set sep = "\t" if ( $%dir < 4 ) set sep = "\t \t" set sep2 = "\t" if ( $%file < 14 ) set sep2 = "\t \t" echo "$result $dir $sep $file $sep2 $utime $message" >> validate.log # write variables to file echo $failures > .val.vars echo $passes >> .val.vars echo $unsupported >> .val.vars echo $unknown >> .val.vars exit (0)