`
xifengtaizi
  • 浏览: 10762 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

checkout.sh

    博客分类:
  • UNIX
 
阅读更多
ME=checkout.sh

#echo - Check for updates ......
if [ /home/sh13256/$ME -nt $0 ]; then
#  echo - New version found. Update ...
  cp /home/sh13256/$ME $0
  echo - $0 Updated. Relaunching ...
  echo
  echo "$0 $*"
  $0 $*
  exit
fi
#echo - $0 is up to date

Usage(){
  echo
  echo " Usage: $0 [PARAM]"
  echo
  echo "     To check out LQT main trunk     :    $0 LQT"
  echo "     To check out LQT branch         :    $0 LQT [branch name]"
  echo "     To check out LQT last branch    :    $0 LQTB"
  echo
  echo "     To check out LoanWL             :    $0 LWL"
  echo "     To check out LoanWL             :    $0 LWL [branch name]"
  echo "     To check out LoanWL last branch :    $0 LWLB"
  echo
  echo "     To check out LQT Common         :    $0 CM"
  echo "     To check out DB                 :    $0 DB"
  echo "     To check out Any Folder         :    $0 [folder name]   (D't start with /) "
  echo
  echo "     To update code from CVS         :    $0 u"
  echo "     To prepare source tree          :    $0 p"
  echo
}

if [ $# -lt 1 ]; then
  Usage
  exit
fi

#set -x

cROOT=`pwd`
CMD=$1
JAVA=/opt/j2se/1.5.0_12/bin/java
FOLDERS=$cROOT/.folder
OPS=$cROOT/.prepare
LWL_COMPILE=lwlCompile

BRANCH_FILE=$cROOT/.branch
LQT_BRANCH_PREFIX='LQT:'
LWL_BRANCH_PREFIX='LWL:'


#----------------- Login --------------------------
loginLQT(){
        CVSROOT=/net/nasny30v1gfi.nam.nsroot.net/vol/gfi_v6_q1/data/opt/Loans/CVSRepository
    export CVSROOT
}

loginGOLLF(){
        CVSROOT=/net/nasny30v1gfi.nam.nsroot.net/vol/gfi_v1_q1/data/opt/ilink/CVSRepository
    export CVSROOT
}
#   username=`whoami`
#   echo " Please enter cvs username(default $username):"
#   read RESP1
#   if [ -z $RESP1 ]; then
#     username=`whoami`
#   else
#     username=$RESP1
#   fi
#
#   echo " Please enter password:"
#   stty -echo
#   read RESP2
#   stty echo
#   password=$RESP2
#}

standardCheckOut(){

  PROJECT_NAME=$1/
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

}

removeFolderQuickly(){
#  rm -f ./build
#  cp /home/sh13256/build.sh build
#  chmod +x ./build
#  ./build rm ${1}
#  rm -f ./build

  ksh -x /home/sh13256/build.sh rm $1

}

PrepareLoansQTCompileFolder(){
  #set -x

  echo ------ Preparing $cROOT/LoansQuickTicket ------

  removeFolderQuickly ${cROOT}/LoansQuickTicket/compile
  chmod +x ${cROOT}/LoansQuickTicket/LQT/prepareCompile.sh
  cd ${cROOT}/LoansQuickTicket/LQT/
  ./prepareCompile.sh
  cp /home/sh13256/build.sh ${cROOT}/LoansQuickTicket/compile/b
  chmod -R +xw ${cROOT}/LoansQuickTicket/compile/

}

PrepareLoanWLCompileFoler(){
  #set -x

  echo ------ Preparing $cROOT/zTRSBackEnd ------

  cd ${cROOT}
  removeFolderQuickly ${cROOT}/$LWL_COMPILE
  mkdir ${cROOT}/$LWL_COMPILE
  cp -R zTRSBackEnd/* ./$LWL_COMPILE/
  cd $LWL_COMPILE
  find . -name "CVS" -exec rm -rf {} \;
  chmod -R +xw .
}

DelCVSFolder(){
        echo " -- deleting CVS folders on `pwd` -- "
  find . -name "CVS" -exec rm -rf {} \;
}

updateAll(){
#       set -x
  if [ -d $cROOT/LoansQuickTicket ]; then
        echo ------ Updating $cROOT/LoansQuickTicket ------
    cd $cROOT/LoansQuickTicket
    cvs -q update -C
  fi
  if [ -d $cROOT/zTRSBackEnd ]; then
        echo ------ Updating $cROOT/zTRSBackEnd ------
    cd $cROOT/zTRSBackEnd
    cvs -q update -C
  fi
  if [ -f $cROOT/$FOLDERS ]; then
    for FOLDER in `cat $cROOT/$FOLDERS`
    do
          echo ------ Updating $cROOT/$FOLDER ------
      cd $cROOT/$FOLDER
      cvs -q update -C
    done
  fi
}

prepareAll(){
#       set -x

  if [ -f $cROOT/$OPS ]; then
        chmod +x ./$OPS
        ./$OPS
  fi
  if [ -d $cROOT/LoansQuickTicket ]; then
    PrepareLoansQTCompileFolder
  fi
  if [ -d $cROOT/zTRSBackEnd ]; then
    PrepareLoanWLCompileFoler
  fi
}


if [ $CMD = "u" ]; then
  updateAll
  exit

elif [ $CMD = "update" ]; then
  loginLQT
  updateAll >>$2 2>&1
  exit

elif [ $CMD = "updateLQT" ]; then
  loginLQT
  if [ -d $cROOT/LoansQuickTicket ]; then
    cd LoansQuickTicket
    cvs -q update -C >>$2 2>&1
  fi
  exit

elif [ $CMD = "updateLWL" ]; then
  loginLQT
  if [ -d $cROOT/zTRSBackEnd ]; then
    cd zTRSBackEnd
    cvs -q update -C >>$2 2>&1
  fi
  exit

elif [ $CMD = "p" ]; then
  prepareAll
  exit

elif [ $CMD = "prepare" ]; then
  prepareAll >>$2 2>&1
  exit

elif [ $CMD = "prepareLQT" ]; then
  if [ -d $cROOT/LoansQuickTicket ]; then
    PrepareLoansQTCompileFolder >>$2 2>&1
  fi
  exit

elif [ $CMD = "prepareLWL" ]; then
  if [ -d $cROOT/zTRSBackEnd ]; then
    PrepareLoanWLCompileFoler  >>$2 2>&1
  fi
  exit

elif [ $CMD = "LQT" ]; then
  loginLQT
  PROJECT_NAME=LoansQuickTicket/LQT
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    mv $BRANCH_FILE ${BRANCH_FILE}.old
    cat ${BRANCH_FILE}.old | sed '/^LQT:.*$/d' > $BRANCH_FILE
    rm ${BRANCH_FILE}.old
    echo ${LQT_BRANCH_PREFIX}$2 >> $BRANCH_FILE
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    rm $BRANCH_FILE
    cvs checkout -P ${PROJECT_NAME}
  fi

  PrepareLoansQTCompileFolder
  exit

elif [ $CMD = "LQTB" ]; then
    loginLQT
        LQT_BRANCH=`cat ${BRANCH_FILE} | grep '^LQT:' | sed 's/^LQT://'`
        if [ ! ${LQT_BRANCH} ]; then
                echo LQT last branch log not found. Exit !
          exit
        fi

        echo LQT last branch log found: $LQT_BRANCH

        $0 LQT $LQT_BRANCH

elif [ $CMD = "LWL" ]; then
  loginLQT
  PROJECT_NAME=zTRSBackEnd

  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    mv $BRANCH_FILE ${BRANCH_FILE}.old
    cat ${BRANCH_FILE}.old | sed '/^LWL:.*$/d' > $BRANCH_FILE
    rm ${BRANCH_FILE}.old
    echo ${LWL_BRANCH_PREFIX}$2 >> $BRANCH_FILE
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    rm $BRANCH_FILE
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

elif [ $CMD = "LWLB" ]; then
    loginLQT
        LWL_BRANCH=`cat ${BRANCH_FILE} | grep '^LWL:' | sed 's/^LWL://'`
        if [ ! ${LWL_BRANCH} ]; then
                echo LoanWL last branch log not found. Exit !
          exit
        fi

        echo LoanWL last branch log found: $LWL_BRANCH

        $0 LWL $LWL_BRANCH

elif [ $CMD = "DB" ]; then
    loginLQT
  PROJECT_NAME=LoansQuickTicket/LoansQTDB
  CTRL_FILE=$PROJECT_NAME/config/loan_qt.ctl

  removeFolderQuickly $cROOT/$PROJECT_NAME
  cvs checkout -P !${PROJECT_NAME}/src ${PROJECT_NAME}

#  CTRL_LIST=`cat $CTRL_FILE | grep "^SQL" | sed 's/^SQL/loan_qt/' | sed 's/,/\//g'`

  CTRL_LIST=`cat $CTRL_FILE | sed '/^#/d' | sed '/^$/d'`

  for CTLFILE in $CTRL_LIST
  do
        SUFFIX=`echo $CTLFILE | sed 's/^.*\.//'`
    cvs checkout ${PROJECT_NAME}/src/loan_qt/${SUFFIX}/${CTLFILE}
  done

  if [ -d $cROOT/$PROJECT_NAME ]; then
    cd $cROOT/$PROJECT_NAME
    DelCVSFolder
  fi

  rm ./b
  cp /home/sh13256/build.sh ./b
  chmod +x ./b
  ./b crlf

  ./b asp $cROOT/LoansQuickTicket/LoansQTDB

elif [ $CMD = "CM" ]; then
    loginLQT
  PROJECT_NAME=LoansQuickTicket/LoansQTCommon
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

elif [ $CMD = "BT" ]; then
  loginLQT
  PROJECT_NAME=LoansQTBatch/
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

elif [ $CMD = "COMPS" ]; then
  loginGOLLF
  PROJECT_NAME=comps/
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

elif [ $CMD = "GOLLF" ]; then

#set -x

  loginGOLLF

  PROJECT_NAME=gollf
#  removeFolderQuickly $PROJECT_NAME

  BRANCH_NAME=$2

  if [ $3 = '.' ]; then
      INCLUDE_FOLDERS=${PROJECT_NAME}
  elif [ $3 = 'back' ]; then
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/common"
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/comps/backend"
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/ds/backend"
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/scorecard/backend"
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/gemfire/cache"
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/profile/backend"
  else
      INCLUDE_FOLDERS="${INCLUDE_FOLDERS} ${PROJECT_NAME}/$3"
  fi

  if [ ${BRANCH_NAME} = '-' ]; then
      LAST_BRANCH=`cat ${BRANCH_FILE}`
     
      if [ -z ${LAST_BRANCH} ]; then
        echo " -"
        echo " - Give me a Branch Name(Blank for Trunk):\c"
        read RESP
        if [ -z ${RESP} ]; then
            echo '-HEAD-' > ${BRANCH_FILE}
                cvs checkout -P ${INCLUDE_FOLDERS} #${PROJECT_NAME}/
                exit 0
        fi
        LAST_BRANCH=${RESP}
        echo ${LAST_BRANCH} > ${BRANCH_FILE}
      elif [ ${LAST_BRANCH} = '-HEAD-' ]; then
        cvs checkout -P ${INCLUDE_FOLDERS} #${PROJECT_NAME}/
        exit
      fi
      cvs checkout -r ${LAST_BRANCH} -P ${INCLUDE_FOLDERS} #${PROJECT_NAME}/
      exit
  elif [ ! ${BRANCH_NAME} = '-HEAD-' ]; then
        echo ${BRANCH_NAME} > ${BRANCH_FILE}
    cvs checkout -r ${BRANCH_NAME} -P ${INCLUDE_FOLDERS} #${PROJECT_NAME}/
  else
    echo '-HEAD-' > ${BRANCH_FILE}
    cvs checkout -P ${INCLUDE_FOLDERS} #${PROJECT_NAME}/
  fi
  exit

#  standardCheckOut gollf $2

else
  loginLQT
  PROJECT_NAME=$1
  removeFolderQuickly $PROJECT_NAME

  if [ $# -gt 1 ]; then
    cvs checkout -r $2 -P ${PROJECT_NAME}
  else
    cvs checkout -P ${PROJECT_NAME}
  fi
  exit

  cat $1 >> ${FOLDERS}
  mv ${FOLDERS} ${FOLDERS}.old
  cat ${FOLDERS}.old | uniq > $FOLDERS
  rm ${FOLDERS}.old

fi

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics