nsb-nightly
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #!/usr/bin/env bash
  2. #
  3. # $Id: nsb-nightly,v 1.7.2.2 2005/11/12 14:40:34 tanders Exp $
  4. # Author: Robert Story <rstory@freesnmp.com>
  5. #
  6. ########################################################################
  7. ########################################################################
  8. usage()
  9. {
  10.    echo "Usage: $0  [optional params] VERSION"
  11.    echo ""
  12.    echo " optional params: [-x] [-s SRCD] [-b BUILDD] [-i INSTALLD]"
  13.    echo "                  [-h host] [-p path]"
  14.    echo " VERSION    : release number (eg 5.2.2)"
  15.    echo " -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]"
  16.    echo " -b BUILDD  : build directory [$HOME/build/]"
  17.    echo "              NOTE-platform will be appended to build directory"
  18.    echo " -i INSTALLD: install directory [$HOME/build/$PLATFORM/usr/local]"
  19.    echo ""
  20.    echo " -x : configure extra features for pre-release testing"
  21.    echo " -C : don't source $HOME/.snmp/nsb-nightly"
  22.    echo ""
  23.    echo " -f : from address for email results"
  24.    echo " -e : address to email error results to"
  25.    echo " -o : address to email success results to"
  26.    echo " -h : host to upload results to"
  27.    echo " -p : path to upload results to"
  28.    exit 1
  29. }
  30. #set -x
  31. #
  32. # find nsb-platform based on the path to this script
  33. #
  34. EXE_PATH=${0%nsb-nightly}
  35. EXE_PATH=${EXE_PATH%/}
  36. if [ ! -f $EXE_PATH/nsb-functions ];then
  37.    if [ -f $HOME/bin/nsb-functions ]; then
  38.       EXE_PATH=$HOME/bin
  39.    elif [ -f nsb-functions ];then
  40.       EXE_PATH=$PWD
  41.    else
  42.       echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
  43.       exit 1
  44.    fi
  45. fi
  46. if [ "x$1" = "x-C" ]; then
  47.     shift
  48. else
  49.     if [ -f $HOME/.snmp/nsb-nightly ];then
  50.         source $HOME/.snmp/nsb-nightly
  51.     fi
  52. fi
  53. ########################################################################
  54. ########################################################################
  55. # -r : remove build dir before
  56. # -R : remove build dir after
  57. PARMS="$PARMS -r"
  58. NIGHTLY_VERBOSE=0
  59. NSB_ERR_RESULTS_TO=""
  60. NSB_OK_RESULTS_TO=""
  61. while getopts b:e:f:i:o:s:xh:p:v opt
  62. do
  63.     case "$opt" in
  64.       b)  NSB_BUILD_DIR=$OPTARG;;
  65.       e)  NSB_ERR_RESULTS_TO=$OPTARG;;
  66.       f)  NSB_FROM=$OPTARG;;
  67.       o)  NSB_OK_RESULTS_TO=$OPTARG;;
  68.       i)  PARMS="-i $OPTARG $PARMS";;
  69.       s)  NSB_SRC_DIR=$OPTARG;;
  70.       h)  NSB_SCP_HOST=$OPTARG
  71.           PARMS="-h $NSB_SCP_HOST $PARMS"
  72.           ;;
  73.       p)  NSB_SCP_DEST=$OPTARG
  74.           PARMS="-p $NSB_SCP_DEST $PARMS"
  75.           ;;
  76.       x)  PARMS="-x $PARMS";;
  77.       v)  NIGHTLY_VERBOSE=1;;
  78.       ?)# unknown flag
  79.         usage;;
  80.     esac
  81. done
  82. shift `expr $OPTIND - 1`
  83. if [ $# -ne 1 ]; then
  84.    echo "expecting 1 argument, got $# ($@)"
  85.    usage
  86. fi
  87. NSB_VERSION=$1
  88. source $EXE_PATH/nsb-functions
  89. nsb-default-paths
  90. PARMS="$PARMS -b $NSB_BUILD_DIR -s $NSB_SRC_DIR"
  91. ########################################################################
  92. ########################################################################
  93. echo "Start: `date`"
  94. echo "Running nsb-package $PARMS $NSB_VERSION"
  95. if [ $NIGHTLY_VERBOSE = 1 ]; then
  96.     $EXE_PATH/nsb-package $PARMS $NSB_VERSION
  97. else
  98.     $EXE_PATH/nsb-package $PARMS $NSB_VERSION > /dev/null
  99. fi
  100. RC=$?
  101. echo "Finish: `date`"
  102. cd $NSB_BUILD_DIR
  103. case $RC in
  104.     0)  RESULT="Success"
  105.         NSB_RESULTS_TO=$NSB_OK_RESULTS_TO
  106.         FILES=""
  107.         ;;
  108.     *) RESULT="Error"
  109.        NSB_RESULTS_TO=$NSB_ERR_RESULTS_TO
  110.        FILES=`ls nsb-make-all-errs.* nsb-make-test-errs.* 2>/dev/null`
  111.        if [ ! -z $NSB_SCP_HOST ]; then
  112.           nsb-upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_SUFFIX
  113.        fi
  114.         ;;
  115. esac
  116. echo "Result: $RESULT"
  117. if [ ! -z $NSB_RESULTS_TO ]; then
  118.    SUBJECT="$NSB_VERSION $RESULT on $NSB_HOST ($NSB_PLATFORM)"
  119.    case `uname -s` in
  120.       SunOS)         
  121.          echo "From: $NSB_FROM" > mail.results
  122.          echo "Subject: $SUBJECT" >> mail.results
  123.          echo "" >> mail.results
  124.          echo "Result: $RESULT" >> mail.results
  125.          if [ ! -z "$FILES" ]; then
  126.             cat $FILES >> mail.results
  127.          fi
  128.          mail -t $NSB_RESULTS_TO < mail.results
  129.          ;;
  130.       *)
  131.          echo "Result: $RESULT" >> mail.results
  132.          if [ ! -z "$FILES" ]; then
  133.             cat $FILES >> mail.results
  134.          fi
  135.          mail -s "$SUBJECT" $NSB_RESULTS_TO < mail.results
  136.          ;;
  137.    esac
  138. fi
  139. if [ $RC -eq 0 ]; then
  140.         if [ "x$NSB_BUILD_DIR" = "/" ]; then
  141.             nsb-abort "Not running rm -fR from /"
  142.         else
  143.             /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1
  144.         fi
  145. fi
  146. exit $RC