send email plaform independently
authorisatest
Tue, 09 Jul 2002 11:46:36 +0200
changeset 13320 2c6ee189ae63
parent 13319 23de7b3af453
child 13321 70a5d5fc081a
send email plaform independently
Admin/isatest-makeall
Admin/pmail
--- a/Admin/isatest-makeall	Tue Jul 09 10:44:53 2002 +0200
+++ b/Admin/isatest-makeall	Tue Jul 09 11:46:36 2002 +0200
@@ -14,6 +14,10 @@
 
 MASTERLOG=$LOGPREFIX/isatest.log
 
+TMP=/tmp/isatest-makeall.$$
+
+MAIL=~/bin/pmail
+
 ## diagnostics
 
 PRG="$(basename "$0")"
@@ -47,6 +51,8 @@
 
 [ -d $DISTPREFIX ] || fail "$DISTPREFIX is not a directory."
 
+LOGS=""
+
 for SETTINGS in $@; do
 
     [ -r $SETTINGS ] || fail "Cannot read $SETTINGS."
@@ -62,29 +68,18 @@
 
     echo ------------------- starting test --- `date` --- $HOSTNAME > $TESTLOG 2>&1
 
-    cp $DISTPREFIX/Isabelle/etc/settings $DISTPREFIX/Isabelle/etc/settings.save-$SHORT
     cat $SETTINGS >> $DISTPREFIX/Isabelle/etc/settings
-    $DISTPREFIX/Isabelle/bin/isatool makeall all >> $TESTLOG 2>&1 
+    nice $DISTPREFIX/Isabelle/bin/isatool makeall -j 2 all >> $TESTLOG 2>&1 
 
     if [ $? -eq 0 ]
     then
         echo ------------------- test successful --- `date` --- $HOSTNAME >> $TESTLOG 2>&1
-        mv $DISTPREFIX/Isabelle/etc/settings.save-$SHORT $DISTPREFIX/Isabelle/etc/settings
         gzip -f $TESTLOG
 	rm -rf ~/isabelle-$SHORT
     else
         echo ------------------- test FAILED --- `date` --- $HOSTNAME >> $TESTLOG 2>&1
 	FAIL="$FAIL$SHORT "
-	for R in $MAILTO; do
-    		mail -t $R <<EOM
-Subject: isabelle test failed
-
-Test for platform $SHORT failed. Log file available at
-
-$HOSTNAME:$TESTLOG
-EOM
-	done
-        # more action here
+	LOGS="${LOGS}$HOSTNAME:$TESTLOG\n"
     fi
 
 done
@@ -93,6 +88,16 @@
 
 if [ "$FAIL" != "" ]; then
 	echo "$(date) $HOSTNAME $PRG: targets ${FAIL}FAILED, elapsed time $ELAPSED." >> $MASTERLOG
+	
+	echo "Test for platform(s) ${FAIL}failed. Log file(s) available at" > $TMP
+	echo "$LOGS" >> $TMP
+
+        for R in $MAILTO; do
+	    $MAIL "isabelle test failed" $R $TMP
+	done
+
+	rm $TMP
+
 	exit 1
 else
         echo "$(date) $HOSTNAME $PRG: all tests successful, elapsed time $ELAPSED." >> $MASTERLOG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/pmail	Tue Jul 09 11:46:36 2002 +0200
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+#
+# $Id$
+# Author: Gerwin Klein, TU Muenchen
+# License: GPL (GNU GENERAL PUBLIC LICENSE)
+#
+# DESCRIPTION: send email platform independently.
+
+PRG="$(basename "$0")"
+
+function usage()
+{
+  echo
+  echo "Usage: $PRG subject recipient body"
+  echo
+  echo "  Send email platform independently. Body is a file."
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+## main
+
+# argument checking
+
+[ "$1" = "-?" ] && usage
+[ "$#" != "3" ] && usage
+
+SUBJECT=$1
+TO=$2
+BODY=$3
+
+[ -r $BODY ] || fail "could not read $BODY"
+
+case `uname` in
+    Linux*)
+    mail -s "$SUBJECT" $TO <$BODY
+    ;;
+
+    SunOS*)
+    mail -t $TO <<EOF
+Subject: $SUBJECT
+
+`cat $BODY`
+EOF
+    ;;
+
+    *)  
+    fail "unkown platform"
+    ;;
+esac