source: vendor/python/2.5/Doc/tools/rewrite.py

Last change on this file was 3225, checked in by bird, 18 years ago

Python 2.5

File size: 1.3 KB
Line 
1"""Simple script to replace @DATE@ and friends with real information.
2
3Usage: rewrite.py boilerplate.tex [VAR=value] ... <template >output
4"""
5
6import sys
7import time
8
9
10def get_info(fp):
11 s = fp.read()
12
13 d = {}
14 start = s.find(r"\date{")
15 if start >= 0:
16 end = s.find("}", start)
17 date = s[start+6:end]
18 if date == r"\today":
19 date = time.strftime("%B %d, %Y", time.localtime(time.time()))
20 d["DATE"] = date
21 return d
22
23
24def main():
25 s = sys.stdin.read()
26 if "@" in s:
27 # yes, we actully need to load the replacement values
28 d = get_info(open(sys.argv[1]))
29 for arg in sys.argv[2:]:
30 name, value = arg.split("=", 1)
31 d[name] = value
32 start = 0
33 while 1:
34 start = s.find("@", start)
35 if start < 0:
36 break
37 end = s.find("@", start+1)
38 name = s[start+1:end]
39 if name:
40 value = d.get(name)
41 if value is None:
42 start = end + 1
43 else:
44 s = s[:start] + value + s[end+1:]
45 start = start + len(value)
46 else:
47 # "@@" --> "@"
48 s = s[:start] + s[end:]
49 start = end
50 sys.stdout.write(s)
51
52
53if __name__ == "__main__":
54 main()
Note: See TracBrowser for help on using the repository browser.