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

SNMP编程

开发平台:

Unix_Linux

  1. #!/usr/bin/env bash
  2. #
  3. # $Id: nsb-package,v 1.11.2.1 2005/11/12 14:44:48 tanders Exp $
  4. # Author: Robert Story <rstory@freesnmp.com>
  5. #
  6. ########################################################################
  7. ########################################################################
  8. usage()
  9. {
  10.    echo "Usage: $0  [params] VERSION"
  11.    echo ""
  12.    echo "  params: [-c] [-d] [-P] [-s NSB_SRC_DIR] [-b BUILDD] [-i NSB_INSTALL_DIR]"
  13.    echo "          [-h host] [-p path]"
  14.    echo ""
  15.    echo " VERSION    : release number (eg 5.2.2)"
  16.    echo " -s NSB_SRC_DIRIR  : soure directory [$HOME/src/net-snmp-VERSION]"
  17.    echo " -b BUILDD  : build directory [$HOME/build/]"
  18.    echo "              NOTE-platform will be appended to build directory"
  19.    echo " -i NSB_INSTALL_DIR: install directory [$HOME/build/$PLATFORM/usr/local]"
  20.    echo ""
  21.    echo " -x : configure extra features for pre-release testing"
  22.    echo " -c : skip configure"
  23.    echo " -d : dirty build (don't make distclean)"
  24.    echo " -m : skip 'make all'"
  25.    echo " -P : pause at prompts in between stages"
  26.    echo " -r : remove build dir (rm -fR) before build"
  27.    echo " -R : remove build dir (rm -fR) after successful build"
  28.    echo " -t : skip 'make test'"
  29.    echo " -C : don't source $HOME/.snmp/nsb-package"
  30.    echo ""
  31.    echo " -h : host to upload results to"
  32.    echo " -p : path to upload results to"
  33.    exit 1
  34. }
  35. #trap exit SIGINT
  36. #set -x
  37. #
  38. # find nsb-platform based on te path to this script
  39. #
  40. EXE_PATH=${0%nsb-package}
  41. EXE_PATH=${EXE_PATH%/}
  42. if [ ! -f $EXE_PATH/nsb-functions ];then
  43.    if [ -f $HOME/bin/nsb-functions ]; then
  44.       EXE_PATH=$HOME/bin
  45.    elif [ -f nsb-functions ];then
  46.       EXE_PATH=$PWD
  47.    else
  48.       echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
  49.       exit 1
  50.    fi
  51. fi
  52. if [ "x$1" = "x-C" ]; then
  53.     shift
  54. else
  55.     if [ -f $HOME/.snmp/nsb-package ];then
  56.         source $HOME/.snmp/nsb-package
  57.     fi
  58. fi
  59. ########################################################################
  60. ########################################################################
  61. REMOVE_SUCCESS=0
  62. #      x)  x=$OPTARG ;;
  63. while getopts b:cdh:i:mPp:rRs:tx opt
  64. do
  65.     case "$opt" in
  66.       b)  NSB_BUILD_DIR=$OPTARG ;;
  67.       c)  NSB_SKIP_CONFIG=1 ;;
  68.       d)  NSB_CLEAN=0 ;;
  69.       h)  NSB_SCP_HOST=$OPTARG ;;
  70.       i)  NSB_INSTALL_DIR=$OPTARG ;;
  71.       m)  NSB_SKIP_BUILD=1 ;;
  72.       P)  NSB_PROMPT=1 ;;
  73.       p)  NSB_SCP_DEST=$OPTARG ;;
  74.       r)  NSB_CLEAN=2 ;;
  75.       R)  REMOVE_SUCCESS=1 ;;
  76.       s)  NSB_SRC_DIR=$OPTARG ;;
  77.       t)  NSB_SKIP_TEST=1 ;;
  78.       x)  NSB_CONFIG_ALL=1;;
  79.       ?)# unknown flag
  80.         usage;;
  81.     esac
  82. done
  83. shift `expr $OPTIND - 1`
  84. if [ $# -ne 1 ]; then
  85.    echo "expecting 1 argument, got $# ($@)"
  86.    usage
  87. fi
  88. NSB_VERSION=$1
  89. source $EXE_PATH/nsb-functions
  90. nsb-default-paths
  91. if [ $NSB_CLEAN -eq 1 ]; then
  92.    if [ $NSB_SKIP_CONFIG -eq 1 ]; then
  93.       echo "A clean build also requires configuration (-d and -c"
  94.       echo "cannot both be specified)."
  95.       usage
  96.    fi
  97. fi
  98. ########################################################################
  99. ########################################################################
  100. nsb-prompt "press enter to build $NSB_SRC_DIR in $NSB_BUILD_DIR, and install in $NSB_INSTALL_DIR"
  101. nsb-build $NSB_VERSION $NSB_SRC_DIR $NSB_BUILD_DIR $NSB_INSTALL_DIR $NSB_CONFIG_ALL
  102. rc=$?
  103. if [ ! -z $NSB_SCP_HOST ]; then
  104.    nsb-upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_HOST/
  105. fi
  106. if [ $rc -eq 0 ] && [ $REMOVE_SUCCESS -eq 1 ];then
  107.     nsb-prompt "press enter to remove $NSB_BUILD_DIR"
  108.     if [ "x$NSB_BUILD_DIR" = "/" ]; then
  109.        nsb-abort "Not running rm -fR from /"
  110.     else
  111.        /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1
  112.     fi
  113. fi
  114. nsb-prompt "press enter to exit with rc $RC"
  115. exit $rc