#!/bin/bash
#version: 1.0
#by: summer
giturl="http://git地址" #这里加git clone的地址
dirname=`echo "$giturl" |awk -F '/' '{print $NF}'|awk -F '.' '{print $1}'`
filename="$dirname.jar"
username="用户名" #这里加用户名
passwd="密码" #这里加密码
nowpath=`pwd`
#获取信息
#get_info(){
#read -p "please enter the giturl > " gurl
#giturl=$gurl
#read -p "please enter the gits username > " gname
#username=$gname
#read -p "please enter the gits passwd > " gpswd
#passwd=$gpswd
#dirname=`echo "$giturl" |awk -F '/' '{print $NF}'|awk -F '.' '{print $1}'`
#filename="$dirname.jar"
#}
git_pull(){
if [ ! -d $nowpath/$dirname ];then
/usr/bin/expect <<EOF
set timeout 30
spawn git clone $giturl
expect "Username for 'http://ip:9989':"
send "$username\n"
expect "Password for 'http://$username@ip:9989':"
send "$passwd\n"
expect eof
EOF
else
rm -rf ./$dirname
/usr/bin/expect <<EOF
set timeout 30
spawn git clone $giturl
expect "Username for 'http://ip:9989':"
send "$username\n"
expect "Password for 'http://$username@ip:9989':"
send "$passwd\n"
expect eof
EOF
fi
}
#maven构建
project_build(){
cd $nowpath/$dirname
mvn clean package -U -Dmaven.test.skip
if [ $? -eq 0 ];then
echo "Build Success!"
else
echo "Build Faild! Exiting..."
exit
fi
}
jar_push(){
if [ ! -d /home/$dirname ];then
mkdir /home/$dirname
fi
if [ -f /home/$dirname/$filename ];then
backdate=`date +%Y-%m-%d-%T`
mv /home/$dirname/$filename /home/$dirname/$filename.back.$backdate
fi
cp $nowpath/$dirname/target/$filename /home/$dirname/
ps aux|grep $filename|grep -v "grep" >/dev/null
if [ $? -eq 0 ];then
jpid=`ps aux |grep $filename |grep -v "grep"|awk '{print $2}'`
kill -9 $jpid
cd /home/$dirname/
nohup java -jar $filename >$filename.log 2>&1 &
else
cd /home/$dirname/
nohup java -jar $filename >$filename.log 2>&1 &
fi
}
#get_info
git_pull
project_build
jar_push
rm -rf $nowpath/$dirname