Mercurial > p > roundup > code
annotate roundup/templatebuilder.py @ 89:b6b30ba53986
Fixed some of the exceptions so they're the right type.
Removed the str()-ification of node ids so we don't mask oopsy errors
any more.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 27 Jul 2001 06:25:35 +0000 |
| parents | 0eed07d99b98 |
| children | 0b250446cf8b |
| rev | line source |
|---|---|
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
1 preamble = """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
2 # Do Not Edit (Unless You Want To) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
3 # This file automagically generated by roundup.htmldata.makeHtmlBase |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
4 # |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
5 """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
7 def makeHtmlBase(templateDir): |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
8 """ make a htmlbase.py file in the given templateDir, from the |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
9 contents of templateDir/html """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
10 import os, glob, re |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
11 print "packing up templates in", templateDir |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
12 filelist = glob.glob(os.path.join(templateDir, 'html', '*')) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
13 filelist = filter(os.path.isfile, filelist) # only want files |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
14 filelist.sort() |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
15 fd = open(os.path.join(templateDir, 'htmlbase.py'), 'w') |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
16 fd.write(preamble) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
17 for file in filelist: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
18 mangled_name = os.path.basename(re.sub(r'\.', 'DOT', file)) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
19 fd.write('%s = """'%mangled_name) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
20 fd.write(open(file).read()) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
21 fd.write('"""\n\n') |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
22 fd.close() |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
23 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
24 def installHtmlBase(template, installDir): |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
25 """ passed a template package and an installDir, unpacks the html files into |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
26 the installdir """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
27 import os,sys,re |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
28 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
29 tdir = __import__('roundup.templates.%s.htmlbase'%template).templates |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
30 if hasattr(tdir, template): |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
31 tmod = getattr(tdir, template) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
32 else: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
33 raise "TemplateError", \ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
34 "couldn't find roundup.template.%s.htmlbase"%template |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
35 htmlbase = tmod.htmlbase |
|
69
0eed07d99b98
oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
68
diff
changeset
|
36 installDir = os.path.join(installDir, 'html') |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
38 print "installing from", htmlbase.__file__, "into", installDir |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
39 modulecontents = dir(htmlbase) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
40 for mangledfile in modulecontents: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
41 if mangledfile[0] == "_": |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
42 continue |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
43 filename = re.sub('DOT', '.', mangledfile) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
44 outfile = os.path.join(installDir, filename) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
45 outfd = open(outfile, 'w') |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
46 data = getattr(htmlbase, mangledfile) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
47 outfd.write(data) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
48 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
49 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
50 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
51 if __name__ == "__main__": |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
52 import sys |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
53 if len(sys.argv) == 2: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
54 makeHtmlBase(sys.argv[1]) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
55 elif len(sys.argv) == 3: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
56 installHtmlBase(sys.argv[1], sys.argv[2]) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
57 else: |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
58 raise "what you talkin about willis?" |
