Introduction
This recipe can be used to generate textfiles from a (text) template. Different to collective.recipe.template you can also specify a path to the output file and the path will be created, if it does not exist.
A short example:
[buildout]
parts = zope.conf
[message]
recipe = collective.recipe.template
input = templates/message.in
output = ${buildout:parts-directory}/etc/message
mymessage = Hello, World!
In the template you can use the exact same variables as you can use in the buildout configuration. For example an input file can look like this:
My top level directory is ${buildout:directory}
Executables are stored in ${buildout:bin-directory}
As an extension to the buildout syntax you can reference variables from the current buildout part directly. For example:
My message is: ${mymessage}
Why another template recipe?
Both iw.recipe.template and inquant.recipe.textfile claim to do the same thing. I have found them to be undocumented and too buggy for real world use, and neither are in a public repository where I could fix them. In addition this implementation leverages the buildout variable substitution code, making it a lot simpler.
collective.recipe.template actually lacks support for creating paths of target files to be generated (and tests).
Detailed Description
Simple creation of a file out of a template
Lets create a minimal buildout.cfg file:
>>> write('buildout.cfg',
... '''
... [buildout]
... parts = template
... offline = true
...
... [template]
... recipe = z3c.recipe.template
... input = template.in
... output = template
... ''')
We create a template file:
>>> write('template.in',
... '''#
... My template knows about buildout path:
... ${buildout:directory}
... ''')
Now we can run buildout:
>>> print system(join('bin', 'buildout')),
Installing template.
The template was indeed created:
>>> cat('template')
#
My template knows about buildout path:
.../sample-buildout
The variable buildout:directory was also substituted by a path.
Creating a template in a variable path
Lets create a minimal buildout.cfg file. This time the output should happen in a variable path:
>>> write('buildout.cfg',
... '''
... [buildout]
... parts = template
... offline = true
...
... [template]
... recipe = z3c.recipe.template
... input = template.in
... output = ${buildout:parts-directory}/template
... ''')
Now we can run buildout:
>>> print system(join('bin', 'buildout')),
Uninstalling template.
Installing template.
The template was indeed created:
>>> cat('parts', 'template')
#
My template knows about buildout path:
.../sample-buildout
Creating missing paths
If an output file should be created in a path that does not yet exist, then the missing items will be created for us:
>>> write('buildout.cfg',
... '''
... [buildout]
... parts = template
... offline = true
...
... [template]
... recipe = z3c.recipe.template
... input = template.in
... output = ${buildout:parts-directory}/etc/template
... ''')
>>> print system(join('bin', 'buildout')),
Uninstalling template.
Installing template.
Also creation of several subdirectories is supported:
>>> write('buildout.cfg',
... '''
... [buildout]
... parts = template
... offline = true
...
... [template]
... recipe = z3c.recipe.template
... input = template.in
... output = ${buildout:parts-directory}/foo/bar/template
... ''')
>>> print system(join('bin', 'buildout')),
Uninstalling template.
Installing template.
>>> cat('parts', 'foo', 'bar', 'template')
#
My template knows about buildout path:
.../sample-buildout
When changes happen to the output path, then the old path is removed on uninstall. Therefore the etc/ directory created above has vanished now:
>>> ls('parts')
d foo
Changes
0.1 (2009-03-09)
Initial build based on collective.recipe.template
Release files for z3c.recipe.template 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| z3c.recipe.template-0.1.tar.gz | 5.7 kB | Details |
Release files / z3c.recipe.template-0.1.tar.gz
| Download URL | z3c.recipe.template-0.1.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d03353ca896efe8d78b17f992710df188552014986f1358091cdbd8c25a4d25
|
|
BLAKE2b-256 checksum How to use checksums |
353078e154c2b73bfdd0a3c1daef2bfa7932aad16ecee358139b7b5fc80d417e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |