-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfileOperatinForDeploy_42_admin.py
55 lines (48 loc) · 1.82 KB
/
fileOperatinForDeploy_42_admin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
from shutil import copy
from shutil import rmtree
#jenkins项目目录
JENKINS_PATH='C:/Users/EDZ/.jenkins/workspace/wdove_42_admin_incremDeploy'
#待增量复制的文件所在目录
copyFileCommonPath='C:/Users/EDZ/.jenkins/workspace/wdove_42_admin_incremDeploy/copyFiles'
#存放svn中更改文件的文件路径
changedFile='D:/Apache-Subversion-1.10.0/bin/adminchangedfiles.txt'
#在操作前,将上一次生成的待复制文件删除
if os.path.exists(copyFileCommonPath):
rmtree(copyFileCommonPath)
#再次创建放置需要更新文件的文件夹
if not os.path.exists(copyFileCommonPath):
os.makedirs(copyFileCommonPath)
#将文件的路径和svn项目路径进行分离,得到更新文件的相对路径
def splitStr(str):
file=str.split("whuadmin")[1]
return file
f=open(changedFile,'r')
for line in f.readlines():
str=line.strip()
#print(str[0])
#判断得到的changefiles中,对文件的操作是否是删除,若是删除操作则忽略该文件,不对该文件进行后续的复制操作
if str[0]=='D':
continue
#分离得到要复制文件的相对路径
file=splitStr(str)
#得到要复制的文件在Jenkins项目中的绝对路径
filePath = JENKINS_PATH + file
#print(file)
#得到要复制文件的上一级目录p
p,f1=os.path.split(file)
#print(p)
#print(f1)
#得到要将文件复制到的目标文件夹
copyFilePath=copyFileCommonPath+p
#创建目标文件夹
if not os.path.exists(copyFilePath):
os.makedirs(copyFilePath)
#print(filePath)
#判断得到的对象是文件还是文件夹,若是文件夹则不进行复制操作
if os.path.isdir(filePath):
continue
#将Jenkins中对应的文件复制到目标文件夹下
copy(filePath,copyFilePath)
#关闭文件
f.close()