159 lines
4.0 KiB
Bash
159 lines
4.0 KiB
Bash
#! /bin/bash
|
|
|
|
#Variables
|
|
clean=false
|
|
flywayClean=false
|
|
flywayMigrate=false
|
|
flywayRepair=false
|
|
skip=false
|
|
deploy=false
|
|
cleanTomcat=false
|
|
docs=false
|
|
warDeploy=false
|
|
currentDir=`pwd`
|
|
branchName=""
|
|
PROG="`basename $0`"
|
|
|
|
#Functions
|
|
function cleanup(){
|
|
echo "exiting"
|
|
exit
|
|
}
|
|
|
|
function errorexit(){
|
|
true
|
|
echo "errorexit"
|
|
}
|
|
|
|
function clean_tomcat_dir(){
|
|
echo "Cleaning tomcat directory"
|
|
rm -rf $CATALINA_HOME/logs/*
|
|
rm -rf $CATALINA_HOME/temp/*
|
|
rm -rf $CATALINA_HOME/work/*
|
|
}
|
|
|
|
function usage(){
|
|
local error="$*"
|
|
if [[ $error ]]; then
|
|
echo ""
|
|
echo "Error: ${error}"
|
|
echo ""
|
|
fi
|
|
echo "Usage: $PROG [OPTION...]"
|
|
echo ""
|
|
echo "Options"
|
|
echo " -h, --help show this usage text"
|
|
echo " -j, --docs build the javadocs"
|
|
echo " -b, --branch branch name to checkout and build"
|
|
echo " -c, --clean performs mvn clean and cleans tomcat directory"
|
|
echo " -f, --flyway-clean performs mvn flyway:clean (clears out database)"
|
|
echo " -m, --flyway-migrate performs mvn flyway:migrate (runs one or more servers to update"
|
|
echo " -r, --flyway-repair performs mvn flyway:repair (fixes checksums)"
|
|
echo " -s, --skip skips jslint test on javascript"
|
|
echo " -d, --deploy deploys app to tomcat directory"
|
|
echo " -w, --war performs tomcat7:redeploy to deploy the war without having to "
|
|
echo " clean/remove existing "
|
|
echo " -t, --clean-tomcat cleans tomcats work, temp, and log directories"
|
|
|
|
if [ "`uname`" == "Darwin" ]; then
|
|
echo "Mac users: use short options only!"
|
|
fi
|
|
|
|
if [[ $error ]]; then
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
}
|
|
|
|
#main
|
|
short_opts='cb:fmrsdhtjw'
|
|
long_opts='help,clean,flyway-clean,flyway-migrate,flyway-repair,noskip,nodeploy,clean-tomcat,branch:,docs,war'
|
|
|
|
# note: for mac use short opts without the -o option
|
|
if [ "`uname`" == "Darwin" ]; then
|
|
#TEMP=`getopt ${short_opts} ${PROG} -- "$@"`
|
|
TEMP=`getopt ${short_opts} $*`
|
|
else
|
|
TEMP=`getopt -o ${short_opts} --long ${long_opts} -n ${PROG} -- "$@"`
|
|
fi
|
|
|
|
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
|
|
|
|
# Note the quotes around `$TEMP': they are essential!
|
|
eval set -- "$TEMP"
|
|
while true ; do
|
|
case "$1" in
|
|
-c|--clean) clean=true ; shift ;;
|
|
-j|--docs) docs=true ; shift ;;
|
|
-b|--branch) branchName=$2 ; shift 2 ;;
|
|
-f|--flyway-clean) flywayClean=true ; shift ;;
|
|
-m|--flyway-migrate) flywayMigrate=true ; shift ;;
|
|
-r|--flyway-repair) flywayRepair ; shift ;;
|
|
-s|--skip) skip=true ; shift ;;
|
|
-d|--deploy) deploy=true ; shift ;;
|
|
-t|--clean-tomcat) cleanTomcat=true ; shift ;;
|
|
-w|--war) warDeploy=true ; shift ;;
|
|
-h|--help) usage; shift;;
|
|
--) shift ; break ;;
|
|
*) echo "Internal error!" ; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
cd $PORTAL_HOME
|
|
|
|
if [ -n "$branchName" ]; then
|
|
git checkout -f $branchName
|
|
git pull origin $branchName
|
|
fi
|
|
|
|
if [ $clean = true ]; then
|
|
echo "Performing mvn clean..."
|
|
mvn clean
|
|
fi
|
|
|
|
if [ $flywayClean = true ]; then
|
|
echo "Performing flyway clean"
|
|
mvn flyway:clean
|
|
fi
|
|
|
|
if [ $flywayMigrate = true ]; then
|
|
echo "Performing flyway migrate"
|
|
mvn flyway:migrate
|
|
fi
|
|
|
|
if [ $flywayRepair = true ]; then
|
|
echo "Performing flyway repair"
|
|
mvn flyway:repair
|
|
fi
|
|
|
|
if [ $docs = true ]; then
|
|
echo "Building documents"
|
|
cd $PORTAL_HOME/scripts
|
|
./build-docs.sh
|
|
fi
|
|
|
|
if [ $deploy = true ]; then
|
|
echo "Undeploying server"
|
|
cd $PORTAL_HOME/scripts
|
|
./undeploy-server.sh
|
|
if [ $cleanTomcat = true ]; then
|
|
clean_tomcat_dir
|
|
fi
|
|
fi
|
|
|
|
cd $PORTAL_HOME
|
|
|
|
mvn -DskipTests=$skip install
|
|
|
|
if [ $warDeploy = true ]; then
|
|
mvn tomcat7:redeploy
|
|
fi
|
|
|
|
if [ $deploy = true ]; then
|
|
echo "Deploying webapp to server"
|
|
cd $PORTAL_HOME/scripts
|
|
./deploy-server.sh
|
|
fi
|
|
|
|
cd $currentDir |