-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDocumerge.py
More file actions
88 lines (82 loc) · 3.57 KB
/
Documerge.py
File metadata and controls
88 lines (82 loc) · 3.57 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
### CONFIGURATION ###
markerStart='<!-- marker start-->'
markerEnd='<!-- marker end-->'
### END CONFIGURATION ###
import os, sys
if os.name == 'posix':
osSlash='/'
else:
osSlash='\\'
errorLog=''
#print(os.listdir(os.path.dirname(os.path.realpath(sys.argv[0])))) # print contents of the folder in which the script resides
#print(os.path.basename(sys.argv[0])) # Just current running file's name
#print(sys.argv[0]) #Current path from CWD + filename
#print(os.listdir(os.getcwd())) # Contents of folder you were in when calling the script
currentDir = os.path.dirname(os.path.realpath(sys.argv[0])) # The path up to the folder of the currently running script
oldFiles = os.listdir(currentDir + osSlash + 'old')
newFiles = os.listdir(currentDir + osSlash + 'new')
if len(newFiles) == 1:
print('template mode ON')
templateMode=True
else:
templateMode=False
print('template mode OFF')
for file in oldFiles:
if os.path.isfile(currentDir + osSlash + 'old' + osSlash + file) and file != os.path.basename(sys.argv[0]):
print('')
mergedData={}
if file not in newFiles and templateMode == False:
errorLog+=('\nreplacement file not found for ' + file)
else:
print('Merging text in ' + file)
if templateMode == True:
currentNewFile=open(str(currentDir + osSlash + 'new' + osSlash + newFiles[0]), 'r')
else:
currentNewFile=open(str(currentDir + osSlash + 'new' + osSlash + file), 'r')
currentOldFile=open(str(currentDir + osSlash + 'old' + osSlash + file), 'r')
replacelines=True
segmentNumber=0 # Evens
for line in currentNewFile:
if markerStart in line:
try:
mergedData[segmentNumber] += (markerStart + '\n')
except KeyError:
mergedData[segmentNumber] = ''
mergedData[segmentNumber] += (markerStart + '\n')
replacelines=False
segmentNumber+=2
elif markerEnd in line:
replacelines=True
else:
if replacelines == True:
try:
mergedData[segmentNumber] += (line)
except KeyError:
mergedData[segmentNumber] = ''
mergedData[segmentNumber] += (line)
segmentNumber=1 # Odds
for line in currentOldFile:
if markerStart in line:
replacelines=False
elif markerEnd in line:
try:
mergedData[segmentNumber] += (markerEnd + '\n')
except KeyError:
mergedData[segmentNumber] = ''
mergedData[segmentNumber] += (markerEnd + '\n')
segmentNumber+=2
replacelines=True
else:
if replacelines == False:
try:
mergedData[segmentNumber] += (line)
except KeyError:
mergedData[segmentNumber] = ''
mergedData[segmentNumber] += (line)
currentNewFile.close()
currentOldFile.close()
currentMergedFile=open(currentDir + osSlash + 'merged' + osSlash + file, 'w')
for line in mergedData:
currentMergedFile.write(mergedData[line])
currentMergedFile.close()
print(errorLog)