File: batchSubstitute.py

package info (click to toggle)
clam 1.4.0-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 17,836 kB
  • ctags: 20,981
  • sloc: cpp: 92,504; python: 9,721; ansic: 1,602; xml: 444; sh: 239; makefile: 153; perl: 54; asm: 15
file content (67 lines) | stat: -rwxr-xr-x 1,871 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/python
import glob, re, sys
"""
Substitution examples:
	(r"'''(([^']|'[^']|''[^'])*)'''", r"<b>\1</b>"),
	(r"''(([^']|'[^'])*)''", r"<em>\1</em>"),
	(r"\[(\S*)\s(.+)\]", r"<a href='\1'>\2</a>"),
	(r"\[(\S*)\]", r"<a href='\1'>\1</a>"),
	(r"`([^`]*)`", r"<img src=http://www.forkosh.dreamhost.com/mimetex.cgi?\1 />"),
	(r"{{{", r"<pre>"),
	(r"}}}", r"</pre>"),
	(r"^@toc\s*$", r"%(toc)s"),
"""

# --------------------------
# User configuration
# --------------------------

testingMode = False # True: do not write any file but print debugging output
                   # False: overwrite files

inlineSubstitutions = [
	(r"GrupDeTests", r"TestFixture"),
	(r"GRUP_DE_TESTS", r"TEST_FIXTURE"),
	(r"CAS_DE_TEST", r"TEST_CASE"),
	(r"ASSERT_IGUALS", r"ASSERT_EQUALS"),
	(r"REGISTRA_TEST", r"REGISTER_FIXTURE"),
	(r"FALLA", r"FAIL"),
]
inlineSubstitutions = [
	(r"'referencia': 50", r"'referencia': 100"),

]
filesToSubstitute = [
	"/var/www/testfarm_logs/practiques_ES1/ES1_*.testfarmlog",
]
# --------------------------
# End of user configuration
# --------------------------


filenames = []
for search in filesToSubstitute: filenames +=  glob.glob(search)

inlines = [ (re.compile(pattern), substitution) for pattern, substitution in inlineSubstitutions ]
def substituteInlines(line, linenumber, filename) :
	original = line
	for compiledPattern, substitution in inlines :
		line = compiledPattern.sub(substitution, line)
	if testingMode and line!=original :
		print "%s line %i:\nold: %snew: %s"%(filename, linenumber, original, line)
	return line


for filename in filenames :
	file = open(filename)
	modified = []
	for i, line in enumerate(file.readlines()) :
		modified += [ substituteInlines(line, i, filename) ]
	file.close()
	if testingMode: continue
	print "writing: "+filename
	file = open(filename,"w")
	file.writelines( modified )
	file.close()