#!/bin/sh # # $Id$ # Author: Robert Story # ######################################################################## ######################################################################## usage() { echo "Usage: $0 [params] VERSION" echo "" echo " params: [-c] [-d] [-P] [-s NSB_SRC_DIR] [-b BUILDD] [-i NSB_INSTALL_DIR]" echo " [-h host] [-p path]" echo "" echo " VERSION : release number (eg 5.2.2)" echo " -s NSB_SRC_DIR : source directory [$HOME/src/net-snmp-VERSION]" echo " -b BUILDD : build directory [$HOME/build/]" echo " NOTE-platform will be appended to build directory" echo " -i NSB_INSTALL_DIR: install directory [$HOME/build/\$PLATFORM/usr]" echo "" echo " -x : configure extra features for pre-release testing" echo " -c : skip configure" echo " -d : dirty build (don't make distclean)" echo " -m : skip 'make all'" echo " -P : pause at prompts in between stages" echo " -r : remove build dir (rm -fR) before build" echo " -R : remove build dir (rm -fR) after successful build" echo " -t : skip 'make test'" echo " -C : don't source $HOME/.snmp/nsb-package" echo "" echo " -h : host to upload results to" echo " -p : path to upload results to" exit 1 } #trap exit SIGINT #set -x # make getopts work on Tru64 by respawning in Posix mode if [ "`uname`" = "OSF1" -a "$BIN_SH" != "xpg4" ]; then BIN_SH=xpg4 export BIN_SH exec $0 $* fi # # find nsb-platform based on the path to this script # EXE_PATH=`dirname $0` if [ ! -f $EXE_PATH/nsb-functions ];then if [ -f $HOME/bin/nsb-functions ]; then EXE_PATH=$HOME/bin elif [ -f nsb-functions ];then EXE_PATH=$PWD else echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD" exit 1 fi fi if [ "x$1" = "x-C" ]; then shift else if [ -f $HOME/.snmp/nsb-package ];then . $HOME/.snmp/nsb-package fi fi ######################################################################## ######################################################################## REMOVE_SUCCESS=0 # x) x=$OPTARG ;; while getopts b:cdh:i:mPp:rRs:tx opt do case "$opt" in b) NSB_BUILD_DIR=$OPTARG ;; c) NSB_SKIP_CONFIG=1 ;; d) NSB_CLEAN=0 ;; h) NSB_SCP_HOST=$OPTARG ;; i) NSB_INSTALL_DIR=$OPTARG ;; m) NSB_SKIP_BUILD=1 ;; P) NSB_PROMPT=1 ;; p) NSB_SCP_DEST=$OPTARG ;; r) NSB_CLEAN=2 ;; R) REMOVE_SUCCESS=1 ;; s) NSB_SRC_DIR=$OPTARG ;; t) NSB_SKIP_TEST=1 ;; x) NSB_CONFIG_ALL=1;; \?)# unknown flag usage;; esac done shift `expr $OPTIND - 1` if [ $# -ne 1 ]; then echo "expecting 1 argument, got $# ($@)" usage fi NSB_VERSION=$1 . $EXE_PATH/nsb-functions nsb_default_paths if [ $NSB_CLEAN -eq 1 ]; then if [ $NSB_SKIP_CONFIG -eq 1 ]; then echo "A clean build also requires configuration (-d and -c" echo "cannot both be specified)." usage fi fi ######################################################################## ######################################################################## nsb_prompt "press enter to build $NSB_SRC_DIR in $NSB_BUILD_DIR, and install in $NSB_INSTALL_DIR" nsb_build $NSB_VERSION $NSB_SRC_DIR $NSB_BUILD_DIR $NSB_INSTALL_DIR $NSB_CONFIG_ALL rc=$? if [ "x$NSB_SCP_HOST" != "x" ]; then nsb_upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_HOST/ fi if [ $rc -eq 0 ] && [ $REMOVE_SUCCESS -eq 1 ];then nsb_prompt "press enter to remove $NSB_BUILD_DIR" if [ "x$NSB_BUILD_DIR" = "/" ]; then nsb_abort "Not running rm -fR from /" else /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1 fi fi nsb_prompt "press enter to exit with rc $RC" exit $rc