Mercurial > p > roundup > code
diff roundup/templates/builder.py @ 937:fb8a8eb55aac
cleanup: moved templatebuilder into templates.builder
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 16 Aug 2002 04:25:03 +0000 |
| parents | |
| children | cf72eae57a2c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/roundup/templates/builder.py Fri Aug 16 04:25:03 2002 +0000 @@ -0,0 +1,122 @@ +# +# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) +# This module is free software, and you may redistribute it and/or modify +# under the same terms as Python, so long as this copyright message and +# disclaimer are retained in their original form. +# +# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR +# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING +# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" +# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, +# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +# +# $Id: builder.py,v 1.1 2002-08-16 04:25:03 richard Exp $ +import errno, re + +__doc__ = """ +Collect template parts and create instance template files. +""" + +preamble = """ +# Do Not Edit (Unless You Want To) +# This file automagically generated by roundup.templatebuilder.makeHtmlBase +# +""" + +def makeHtmlBase(templateDir): + """ make a htmlbase.py file in the given templateDir, from the + contents of templateDir/html """ + import os, glob, re + print "packing up templates in", templateDir + filelist = glob.glob(os.path.join(templateDir, 'html', '*')) + filelist = filter(os.path.isfile, filelist) # only want files + filelist.sort() + fd = open(os.path.join(templateDir, 'htmlbase.py'), 'w') + fd.write(preamble) + for file in filelist: + # skip the backup files created by richard's vim + if file[-1] == '~': continue + mangled_name = os.path.basename(file).replace('.','DOT') + fd.write('%s = """'%mangled_name) + fd.write(re.sub(r'\$((Id|File|Log).*?)\$', r'dollar\1dollar', + open(file).read(), re.I)) + fd.write('"""\n\n') + fd.close() + +def installHtmlBase(template, installDir): + """ passed a template package and an installDir, unpacks the html files into + the installdir """ + import os,sys,re + + tdir = __import__('roundup.templates.%s.htmlbase'%template).templates + if hasattr(tdir, template): + tmod = getattr(tdir, template) + else: + raise "TemplateError", "couldn't find roundup.template.%s.htmlbase"%template + htmlbase = tmod.htmlbase + installDir = os.path.join(installDir, 'html') + try: + os.makedirs(installDir) + except OSError, error: + if error.errno != errno.EEXIST: raise + +# print "installing from", htmlbase.__file__, "into", installDir + modulecontents = dir(htmlbase) + for mangledfile in modulecontents: + if mangledfile[0] == "_": + continue + filename = re.sub('DOT', '.', mangledfile) + outfile = os.path.join(installDir, filename) + outfd = open(outfile, 'w') + data = getattr(htmlbase, mangledfile) + outfd.write(data) + + + +if __name__ == "__main__": + import sys + if len(sys.argv) == 2: + makeHtmlBase(sys.argv[1]) + elif len(sys.argv) == 3: + installHtmlBase(sys.argv[1], sys.argv[2]) + else: + print "Usage: %s <template directory>"%sys.argv[0] + +# +# $Log: not supported by cvs2svn $ +# Revision 1.14 2002/02/05 09:59:05 grubert +# . makeHtmlBase: re.sub under python 2.2 did not replace '.', string.replace does it. +# +# Revision 1.13 2001/11/22 15:46:42 jhermann +# Added module docstrings to all modules. +# +# Revision 1.12 2001/11/14 21:35:21 richard +# . users may attach files to issues (and support in ext) through the web now +# +# Revision 1.11 2001/08/07 00:24:42 richard +# stupid typo +# +# Revision 1.10 2001/08/07 00:15:51 richard +# Added the copyright/license notice to (nearly) all files at request of +# Bizar Software. +# +# Revision 1.9 2001/08/01 05:06:10 richard +# htmlbase doesn't have extraneous $Foo$ in it any more +# +# Revision 1.8 2001/07/30 08:12:17 richard +# Added time logging and file uploading to the templates. +# +# Revision 1.7 2001/07/30 00:06:52 richard +# Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum. +# +# Revision 1.6 2001/07/29 07:01:39 richard +# Added vim command to all source so that we don't get no steenkin' tabs :) +# +# +# +# vim: set filetype=python ts=4 sw=4 et si
