#!/bin/bash
evn_ip=$1
dev_appid=$2
dev_secury=$3
user_url=$4
pay_url=$5
base_path=/home/sub_config_file_dont_rm
echo "
evn_ip:$evn_ip
dev_appid:$dev_appid
dev_secury:$dev_secury
user_url:$user_url
pay_url:$pay_url
"
function tranceConfig()
{       
        type_=$1
        source_str=$2
        target_str=$3
        ip_host=$4
        file_name=$5
expect -c "
                 set timeout 10
           spawn ssh root@192.168.4.3
                 expect \"]#\"
                 send \"sed -i \\\"N;s#$source_str#$target_str#g\\\"  $base_path/$ip_host/$type_/$file_name\r\"
                 expect \"]#\"
		 						 send \"sed -i \\\"N;s#$source_str#$target_str#g\\\"  $base_path/$ip_host/public/$type_/$file_name\r\"
                 expect \"]#\" 
                 send \"exit\r\"
            expect eof;"

}
echo "部署时间大约需要10分钟,请确保重启应用时，配置文件不再更改。。。"
echo "step 1 更改配置文件"
tranceConfig java "wechat.appid=.*" "wechat.appid=$dev_appid" "$evn_ip" "xyqb-user2.properties"
tranceConfig java "xyqb-mall.url=.*" "xyqb-mall.url=http://$pay_url" "$evn_ip" "xyqb.properties"
tranceConfig ui   "weixinAppid:.*" "weixinAppid:'$dev_appid'," "$evn_ip" "xyqb-user-ui.js"
tranceConfig java "wechat.secret=.*" "wechat.secret=$dev_secury" "$evn_ip" "xyqb-user2.properties"
tranceConfig ui "wechattest.xyqb.com" "$user_url" "$evn_ip" "xyqb-user-ui.js"
echo "step 2 重新部署环境"
function reBuildProject(){
 expect -c "
                 set timeout 10
           spawn ssh root@$2
                 expect \"]#\"
                 send \"cd /home/qa-deploy-utils/qa_shell_script/\r\"
                 expect \"]#\"
                 send \"sh 3_link_config_file_by_name.sh $1\r\"
                 set timeout -1
           	 expect \"]#\"
           	 send \"sh 4_build_by_name.sh $1\r\"
		 set timeout -1
		 expect \"]#\"
		 send \"sh 5_restart_by_name.sh $1\r\"
		 expect \"]#\"
		 send \"exit\r\"
       	    expect eof;"
}
reBuildProject "xyqb-user-ui" "$evn_ip"
reBuildProject "xyqb-user2" "$evn_ip"
reBuildProject "xyqb" "$evn_ip"
echo "部署结束，如果之后修改代码，部署project后，请重新执行该部署脚本，否则有可能出现测试环境配置文件被回退的可能。"












