#!/usr/bin/evn python

#encoding=utf-8

#author:[email protected]


import sys

import os

import shutil

import commands

import time

import subprocess


#获得svn分支地址,根据目录判断是checkout还是update

svn_address = sys.argv[1]

branch_dirname = svn_address.split('/')[-1]

exist_dirname = '/soft/tagsoft/%s' % (branch_dirname)

svn_checkout = 'svn checkout %s /soft/tagsoft/%s --username xxxxxxx' % (svn_address,branch_dirname)

svn_update = 'svn update %s' % (exist_dirname)

if os.path.exists(exist_dirname):

    os.system(svn_update)

else:

    os.system(svn_checkout)


#获得要打包的工程,使用逗号分隔。cms,dms,pro 根据工程名重写pom.xml文件

parameter_argv = sys.argv[2]

parameter_argv_name = parameter_argv.split(',')

parameter_argv_option = ''

for parameter_argv_list in parameter_argv_name:

    parameter_argv_option += '        ../xxxx-%s \n' % (parameter_argv_list)

    shutil.copyfile(r'/soft/tagsoft/cms-pom.xml','/soft/tagsoft/parameter_pom.xml')

#查找特定行进行内容替换

with open('/soft/tagsoft/parameter_pom.xml','r') as fd:

    lines = fd.readlines()

with open('/soft/tagsoft/parameter_pom.xml','w') as f_w:

    for line in lines:

        if 'qwerty' in line:

        line = line.replace('qwerty',parameter_argv_option)

        f_w.write(line)

cmd_mv = 'mv /soft/tagsoft/parameter_pom.xml %s/jzjz-parent/pom.xml' % (exist_dirname)

os.system(cmd_mv)

cmd_cd = '%s' % (exist_dirname)

os.chdir(cmd_cd)

os.system('mvn clean package -DtestSkip  -P test')

#获得tomcat路径准备打包的tomcat工程

tomcat_home_dirname = sys.argv[3]

kill_pid = "ps -ef | grep %s | grep -v grep| grep -v python | awk '{print $2}' | xargs kill -9" % (tomcat_home_dirname)

subprocess.Popen(kill_pid,stdout=subprocess.PIPE,shell=True)

#删除指定目录内容,先删除然后新建文件夹

rm_war = '%s/webapps/' % (tomcat_home_dirname)

shutil.rmtree(rm_war)

os.mkdir(rm_war)

for parameter_argv_list in parameter_argv_name:

    parameter_argv_list_copy1 = '%s/jzjz-%s/target/%s.war' % (exist_dirname,parameter_argv_list,parameter_argv_list)

    parameter_argv_list_copy2 = '%s/webapps/' % (tomcat_home_dirname)

    shutil.copy(parameter_argv_list_copy1,parameter_argv_list_copy2)

print '拷贝%s到%s' % (parameter_argv_list,tomcat_home_dirname)

start_tomcat_cmd = 'nohup %s/bin/startup.sh & ' % (tomcat_home_dirname)

subprocess.Popen(start_tomcat_cmd,stdout=subprocess.PIPE,shell=True)