Blame dist/nsb-nightly

Packit fcad23
#!/bin/sh
Packit fcad23
#
Packit fcad23
# $Id$
Packit fcad23
# Author: Robert Story <rstory@freesnmp.com>
Packit fcad23
#
Packit fcad23
########################################################################
Packit fcad23
########################################################################
Packit fcad23
Packit fcad23
usage()
Packit fcad23
{
Packit fcad23
   echo "Usage: $0  [optional params] VERSION"
Packit fcad23
   echo ""
Packit fcad23
   echo " optional params: [-x] [-s SRCD] [-b BUILDD] [-i INSTALLD]"
Packit fcad23
   echo "                  [-h host] [-p path]"
Packit fcad23
   echo " VERSION    : release number (eg 5.2.2)"
Packit fcad23
   echo " -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]"
Packit fcad23
   echo " -b BUILDD  : build directory [$HOME/build/]"
Packit fcad23
   echo "              NOTE-platform will be appended to build directory"
Packit fcad23
   echo " -i INSTALLD: install directory [$HOME/build/\$PLATFORM/usr]"
Packit fcad23
   echo ""
Packit fcad23
   echo " -x : configure extra features for pre-release testing"
Packit fcad23
   echo " -C : don't source $HOME/.snmp/nsb-nightly"
Packit fcad23
   echo ""
Packit fcad23
   echo " -f : from address for email results"
Packit fcad23
   echo " -e : address to email error results to"
Packit fcad23
   echo " -o : address to email success results to"
Packit fcad23
   echo " -h : host to upload results to"
Packit fcad23
   echo " -p : path to upload results to"
Packit fcad23
   exit 1
Packit fcad23
}
Packit fcad23
Packit fcad23
#set -x
Packit fcad23
Packit fcad23
# make getopts work on Tru64 by respawning in Posix mode
Packit fcad23
if [ "`uname`" = "OSF1" -a "$BIN_SH" != "xpg4" ]; then
Packit fcad23
    BIN_SH=xpg4
Packit fcad23
    export BIN_SH
Packit fcad23
    exec $0 $*
Packit fcad23
fi
Packit fcad23
Packit fcad23
#
Packit fcad23
# find nsb-platform based on the path to this script
Packit fcad23
#
Packit fcad23
EXE_PATH=`dirname $0`
Packit fcad23
if [ ! -f $EXE_PATH/nsb-functions ];then
Packit fcad23
   if [ -f $HOME/bin/nsb-functions ]; then
Packit fcad23
      EXE_PATH=$HOME/bin
Packit fcad23
   elif [ -f nsb-functions ];then
Packit fcad23
      EXE_PATH=$PWD
Packit fcad23
   else
Packit fcad23
      echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
Packit fcad23
      exit 1
Packit fcad23
   fi
Packit fcad23
fi
Packit fcad23
Packit fcad23
if [ "x$1" = "x-C" ]; then
Packit fcad23
    shift
Packit fcad23
else
Packit fcad23
    if [ -f $HOME/.snmp/nsb-nightly ];then
Packit fcad23
        . $HOME/.snmp/nsb-nightly
Packit fcad23
    fi
Packit fcad23
fi
Packit fcad23
Packit fcad23
########################################################################
Packit fcad23
########################################################################
Packit fcad23
Packit fcad23
# -r : remove build dir before
Packit fcad23
# -R : remove build dir after
Packit fcad23
PARMS="$PARMS -r"
Packit fcad23
NIGHTLY_VERBOSE=0
Packit fcad23
NSB_ERR_RESULTS_TO=""
Packit fcad23
NSB_OK_RESULTS_TO=""
Packit fcad23
Packit fcad23
while getopts b:e:f:i:o:s:xh:p:v opt
Packit fcad23
do
Packit fcad23
    case "$opt" in
Packit fcad23
      b)  NSB_BUILD_DIR=$OPTARG;;
Packit fcad23
      e)  NSB_ERR_RESULTS_TO=$OPTARG;;
Packit fcad23
      f)  NSB_FROM=$OPTARG;;
Packit fcad23
      o)  NSB_OK_RESULTS_TO=$OPTARG;;
Packit fcad23
      i)  PARMS="-i $OPTARG $PARMS";;
Packit fcad23
      s)  NSB_SRC_DIR=$OPTARG;;
Packit fcad23
      h)  NSB_SCP_HOST=$OPTARG
Packit fcad23
          PARMS="-h $NSB_SCP_HOST $PARMS"
Packit fcad23
          ;;
Packit fcad23
      p)  NSB_SCP_DEST=$OPTARG
Packit fcad23
          PARMS="-p $NSB_SCP_DEST $PARMS"
Packit fcad23
          ;;
Packit fcad23
      x)  PARMS="-x $PARMS";;
Packit fcad23
      v)  NIGHTLY_VERBOSE=1;;
Packit fcad23
      \?)# unknown flag
Packit fcad23
        usage;;
Packit fcad23
    esac
Packit fcad23
done
Packit fcad23
shift `expr $OPTIND - 1`
Packit fcad23
Packit fcad23
if [ $# -ne 1 ]; then
Packit fcad23
   echo "expecting 1 argument, got $# ($@)"
Packit fcad23
   usage
Packit fcad23
fi
Packit fcad23
Packit fcad23
NSB_VERSION=$1
Packit fcad23
Packit fcad23
. $EXE_PATH/nsb-functions
Packit fcad23
Packit fcad23
nsb_default_paths
Packit fcad23
Packit fcad23
PARMS="$PARMS -b $NSB_BUILD_DIR -s $NSB_SRC_DIR"
Packit fcad23
Packit fcad23
########################################################################
Packit fcad23
########################################################################
Packit fcad23
echo "Start: `date`"
Packit fcad23
echo "Running nsb-package $PARMS $NSB_VERSION"
Packit fcad23
if [ $NIGHTLY_VERBOSE = 1 ]; then
Packit fcad23
    $EXE_PATH/nsb-package $PARMS $NSB_VERSION
Packit fcad23
else
Packit fcad23
    $EXE_PATH/nsb-package $PARMS $NSB_VERSION > /dev/null
Packit fcad23
fi
Packit fcad23
RC=$?
Packit fcad23
echo "Finish: `date`"
Packit fcad23
cd $NSB_BUILD_DIR
Packit fcad23
case $RC in
Packit fcad23
    0)  RESULT="Success"
Packit fcad23
        NSB_RESULTS_TO=$NSB_OK_RESULTS_TO
Packit fcad23
        FILES=""
Packit fcad23
        ;;
Packit fcad23
    *) RESULT="Error (rc $RC)"
Packit fcad23
       NSB_RESULTS_TO=$NSB_ERR_RESULTS_TO
Packit fcad23
       FILES=`ls nsb-make-*-errs.* 2>/dev/null`
Packit fcad23
       if [ "x$NSB_SCP_HOST" != "x" ]; then
Packit fcad23
          nsb_upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_SUFFIX
Packit fcad23
       fi
Packit fcad23
        ;;
Packit fcad23
esac
Packit fcad23
echo "Result: $RESULT"
Packit fcad23
Packit fcad23
if [ "x$NSB_RESULTS_TO" != "x" ]; then
Packit fcad23
   SUBJECT="$NSB_VERSION $RESULT on $NSB_HOST ($NSB_PLATFORM)"
Packit fcad23
   echo "Sending mail to $NSB_RESULTS_TO: $SUBJECT"
Packit fcad23
   case `uname -s` in
Packit fcad23
      OpenBSD|FreeBSD) # mail doesn't allow setting From
Packit fcad23
         # seems to be in /usr/sbin, which isn't in all paths
Packit fcad23
	 PATH=/usr/sbin/:$PATH
Packit fcad23
         echo "From: $NSB_FROM" > mail.results
Packit fcad23
         echo "To: $NSB_RESULTS_TO" >> mail.results
Packit fcad23
         # mail-related errors to OK address (usully buildmaster)
Packit fcad23
         echo "Errors-To: $NSB_OK_RESULTS_TO" >> mail.results
Packit fcad23
         echo "Subject: $SUBJECT" >> mail.results
Packit fcad23
         echo "" >> mail.results
Packit fcad23
         grep CONFIGURE_OPTIONS include/net-snmp/net-snmp-config.h|sed 's:/home/[^ ]*/build:$HOME:g' >> mail.results
Packit fcad23
         echo "Result: $RESULT" >> mail.results
Packit fcad23
         if [ "x$FILES" != "x" ]; then
Packit fcad23
            cat $FILES >> mail.results
Packit fcad23
         fi
Packit fcad23
         sendmail -t < mail.results
Packit fcad23
         ;;
Packit fcad23
      SunOS) # no sendmail, no mail -s, need -t for To 
Packit fcad23
         echo "From: $NSB_FROM" > mail.results
Packit fcad23
         # mail-related errors to OK address (usully buildmaster)
Packit fcad23
         echo "Errors-To: $NSB_OK_RESULTS_TO" >> mail.results
Packit fcad23
         echo "Subject: $SUBJECT" >> mail.results
Packit fcad23
         echo "" >> mail.results
Packit fcad23
         grep CONFIGURE_OPTIONS include/net-snmp/net-snmp-config.h|sed 's:/home/[^ ]*/build:$HOME:g' >> mail.results
Packit fcad23
         echo "Result: $RESULT" >> mail.results
Packit fcad23
         if [ "x$FILES" != "x" ]; then
Packit fcad23
            cat $FILES >> mail.results
Packit fcad23
         fi
Packit fcad23
         mail -t $NSB_RESULTS_TO < mail.results
Packit fcad23
         ;;
Packit fcad23
      *)
Packit fcad23
         echo "Result: $RESULT" >> mail.results
Packit fcad23
         if [ "x$FILES" != "x" ]; then
Packit fcad23
            cat $FILES >> mail.results
Packit fcad23
         fi
Packit fcad23
         mail -s "$SUBJECT" $NSB_RESULTS_TO < mail.results
Packit fcad23
         ;;
Packit fcad23
   esac
Packit fcad23
fi
Packit fcad23
Packit fcad23
if [ $RC -eq 0 ]; then
Packit fcad23
        if [ "x$NSB_BUILD_DIR" = "/" ]; then
Packit fcad23
            nsb_abort "Not running rm -fR from /"
Packit fcad23
        else
Packit fcad23
            /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1
Packit fcad23
        fi
Packit fcad23
fi
Packit fcad23
Packit fcad23
exit $RC