87 lines
2.0 KiB
Bash
Executable File
87 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# get real path of softlink
|
|
get_real_path() {
|
|
local f="$1"
|
|
while [ -h "$f" ]; do
|
|
ls=`ls -ld "$f"`
|
|
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
if expr "$link" : '/.*' > /dev/null; then
|
|
f="$link"
|
|
else
|
|
f=`dirname "$f"`/"$link"
|
|
fi
|
|
done
|
|
echo "$f"
|
|
}
|
|
|
|
prg_path=$(get_real_path "$0")
|
|
echo "Script Path [$prg_path]"
|
|
pushd $(dirname "$prg_path") > /dev/null
|
|
PROJECT_HOME=$(pwd)
|
|
echo "Project Home [$PROJECT_HOME]"
|
|
|
|
if [ "$1" = 'test' ]; then
|
|
SERVER=xiandou@tj-daily
|
|
elif [ "$1" == 'prod' ]; then
|
|
echo 'deploy dw'
|
|
SERVER=crm@dw-crm
|
|
else
|
|
echo 'Profile required.'
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$1" != 'nb' ]; then
|
|
mvn -T 4C clean package -am -DskipTests
|
|
fi
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo 'Maven build failed.'
|
|
exit 1
|
|
fi
|
|
|
|
TARGET_DIR=target
|
|
echo "Target dir [$TARGET_DIR]"
|
|
JAR=$(find "$TARGET_DIR" -maxdepth 1 -type f -name "*.war" | grep -v "sources.jar$")
|
|
|
|
if [ -z "$JAR" ]; then
|
|
echo "Build target JAR is blank, exit."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Target JAR [$JAR] found"
|
|
JAR_FILE_NAME="${JAR##*/}"
|
|
echo "JAR file name [$JAR_FILE_NAME]"
|
|
|
|
SERVICE_HOME=/data/program/cas
|
|
echo "Service Home [$SERVICE_HOME], Server [$SERVER]"
|
|
|
|
echo "$SERVER [ -f $SERVICE_HOME/lib/main.jar ] && mv $SERVICE_HOME/lib/main.jar $SERVICE_HOME/lib/main_prev.jar"
|
|
ssh "$SERVER" "[ -f $SERVICE_HOME/lib/main.jar ] && mv $SERVICE_HOME/lib/main.jar $SERVICE_HOME/lib/main_prev.jar"
|
|
|
|
echo "Copy [$JAR] to [$SERVER:$SERVICE_HOME/lib/]"
|
|
|
|
# Rename jar
|
|
mv $JAR $TARGET_DIR/main.jar
|
|
|
|
TAR_FILE=main.tgz
|
|
tar -C $TARGET_DIR -czvf $TARGET_DIR/$TAR_FILE main.jar
|
|
DIST_TAR_FILE=$SERVICE_HOME/lib/$TAR_FILE
|
|
|
|
# Copy file to remote
|
|
scp "$TARGET_DIR/$TAR_FILE" "$SERVER:$DIST_TAR_FILE"
|
|
ssh "$SERVER" "tar -C $SERVICE_HOME/lib -xzvf $DIST_TAR_FILE && rm -rf $DIST_TAR_FILE"
|
|
|
|
# Restore jar
|
|
mv $TARGET_DIR/main.jar $JAR
|
|
# Remove tar
|
|
rm -rf $TARGET_DIR/$TAR_FILE
|
|
|
|
echo "$SERVER $SERVICE_HOME/bin/stop.sh"
|
|
ssh "$SERVER" "$SERVICE_HOME/bin/stop.sh"
|
|
|
|
echo "$SERVER $SERVICE_HOME/bin/start.sh"
|
|
ssh "$SERVER" "$SERVICE_HOME/bin/start.sh"
|
|
|
|
popd > /dev/null
|