DESCRIPTIONtemplates2ada parses all the template files in a directory and then generates an output file from these, based on a template file (a default example of which is provided as /usr/share/doc/libtemplates-parser-dev/examples/templates.tads). The latter contains in fact two examples, depending on whether one Ada package should be generated per template, or whether a single package should be built. In the former case, if you are using the GNAT compiler, you should run `gnatchop' on the resulting file. Here is an example:
$ rm -f src/templates/*.ads
$ templates2ada -d resources/ -o src/templates/generated -r
$ cd src/templates; gnatchop -w -q generated
$ rm -f src/templates/generated
One of the goals of templates2ada is to ensure that you are only setting tags that actually exist in the template (and thus prevent, as much as possibly, typos in the name of tags); also, when combined with other tools, to help ensure that all tags needed by the template are properly set.
templates2ada also has special knowledge about HTTP constructs and will generate Ada constants for the HTTP parameters you might receive in return. Once more the goal is to help avoid typos in the Ada code.
For instance, we will consider a simple template file, found in a local file `resources/block1.thtml'. This template contains the following simple html code:
<input name="PARAM1" value="@_TAG1_@" />
<input name="PARAM2" value="@_TAG2_@" />
When you run templates2ada, the following Ada package will be generated. Note that this is only the default output of templates2ada, which can be fully tailored to your needs.
package Templates.Block1 is
pragma Style_Checks (Off);
Template : constant string := "resources/block1.thtml";
Tag1 : constant String := "TAG1";
Tag2 : constant String := "TAG2";
package Http is
Param1 : constant String := "PARAM1";
Param2 : constant String := "PARAM2";
- -d dir
Search for template files in dir.
Display a summary of options.
- -o file
Write the output to file.
- -e ext
Process all files with extension ext that are in the input
directory; consider these files as template files.
Recurse into subdirectories.
- -t file
Use file as the output template file. The templates parser comes
with an example for such a file,
you can adapt to your own needs.
Verbose mode. This will output a warning when an http parameter has a
name made only of template parser tags, since no matching entry can
then be created for it in the output file.