build.ksh

#! /bin/sh
#####################################################################################
getPkg()
{
    RESP=""
    while [ -z "${RESP}" ]
    do
        echo "Please select one package to build. The following are the valid packages:
       
            a) aa
            b) bb

       
        Package (default: gEntlSrv): \c"
        read RESP                         
        case "${RESP:=aa}" in
            "a"|"aa")
                MODULE="ss"
                ENV_ID=69751 ;;
            "b"|"bb")
                MODULE="rr"
                ENV_ID=70031 ;;      
            *)      
            echo "
            $RESP: invalid response, please try again!
            Use the option letter or action keyword."
            RESP=""
        ;;
        esac
    done
}

getBranch()
{
    echo "Please enter the branch you want to checkout from CVS.
        Branch name (default: Main trunk): \c"
    read RESP
    if [ -n "${RESP}" ]
    then
        BRANCH="-r $RESP"
    fi
}


getWorkDir()
{
    echo "Please enter your workdir.
        Working dir : \c"
    read RESP
    if [ -n "${RESP}" ]
    then
        WORKING_DIR=$RESP
    fi
}

#####################################################################################
USERID=`whoami`
CVS=/xenv/cvs/X/1.11.22/bin/cvs
export cvs
CVSROOT=":pserver:username@servername:port/RepositoryName"
export CVSROOT
CURR_DIR=$1
echo $CURR_DIR
WORKING_DIR=`pwd`
COMMON="aa/common"

# check args
if [ $# -gt 1 ];then
    MODULE=$1
    ENV_ID=$2
elif [ $# -gt 2  ];then
    MODULE=$1
    ENV_ID=$2
    BRANCH="-r $3"
    echo $BRANCH
else
    getPkg
    getBranch
    getWorkDir
fi
CURRENTDIR=`pwd`
#WORKING_DIR=$CURRENTDIR/$WORKING_DIR
if [ ! -d $WORKING_DIR ];then
    mkdir $WORKING_DIR
fi

cd $WORKING_DIR
echo "working dir is "$WORKING_DIR
echo "Removing old files..."
rm -rf $COMMON
rm -rf $MODULE

echo "Checking out $MODULE..."
echo "branch is $BRANCH"
${CVS} -Q checkout -P $BRANCH $COMMON
${CVS} -Q checkout -P $BRANCH $MODULE

cd $MODULE
#if [ $ENV_ID = 86701 ];then
#  mv build.properties build.properties.bak
#  cat build.properties.bak | sed 's_\${env.aaa\}_bb_g' > build.properties
#  rm build.properties.bak
#fi
ksh prepareSource.ksh
find . -name CVS -exec /bin/rm -rf {} \;;find . -name *.#* -exec /bin/rm -rf {} \;

echo "Building ..."
/xenv/stexenv -r $ENV_ID . << ZZ
make package -f *.mk
ZZ

echo "dstream pakcage location ->"
ls ${WORKING_DIR}/${MODULE}/*.dstream

# print EAR file location if it is a BE package
if [ -d ${WORKING_DIR}/${MODULE}/install/applications ]
then
    EAR_LOCATION=`ls ${WORKING_DIR}/${MODULE}/install/applications/*.ear`
fi

if [ -n $EAR_LOCATION ]
then
    echo "\n\n\n############################################################################\n"
    echo "EAR file location -> "
    echo $EAR_LOCATION
    echo "\n############################################################################\n\n\n"
fi

cd $WORKING_DIR

猜你喜欢

转载自xifengtaizi.iteye.com/blog/1553436
ksh