NOTE: not all of the functionality presented herein has been implemented. This documentation primarily serves as a spec for how TracLegos should work.
TracLegos is designed to support several ways of creating trac projects: from the command line (create-trac-project), via a paster web interface, and via API calls to TracLegos.create_project and support functions such as traclegosscript/anyrelease/traclegos/legos#L253.
In all three cases, you can have a site configuration file. The site configuration file contains template variables appropriate to the particular site as well as driver configuration defining the project directory, database type, a default set of templates, and other configuration needed to define trac project creation. A site configuration .ini file may be used to enable a trac project creation policy, whether by convention (using create-trac-project from the command line) or by enforcement (using the web front end). The site configuration is tailored to the needs of a particular site or organization and so is not useful to share. Contrast this to trac project templates which are generally meant to be generic and therefore sharable.
Site Configuration Example
An example site configuration is at source:traclegosscript/anyrelease/example/topp/site.ini :
# example site configuration file for TracLegos [site-configuration] directory = /usr/local/topp/trac/projects inherit = /usr/local/topp/trac/trac.ini db_types = MySQL project_types = oss_project [variables] domain = trac.openplans.org basedir = /usr/local/topp/trac [permissions] k0s = TRAC_ADMIN nickyg = TRAC_ADMIN
There are two sections:
- [site-configuration] contains defaults for arguments to TracLegos.create_project and the TracLegos constructor. These have the same name as specified on the command line and also the method arguments. This section also contains the database types and project types TO BE IMPLEMENTED?
- [variables] contains default values for variables. For instance, if your company has a standard footer, and you are using which is set by $footer in templates, you could set footer = Visit <a href="http://example.com">Our Company</a>" to have a sane default.
Use of TracLegos Site Configuration
This diagram illustrates the use of TracLegos site configuration via three major methods of invocation:
- via create-trac-project -c
- via the web interface invoked by paster serve
- via API calls to TracLegos.create_project
Running create-trac-projct -c site-configuration.ini will read the variables and defaults from the site-configuration.ini file. Additional parameters and variables passed via the command line will override those in site-configuration.ini. Additional templates passed in will be applied in order and overwrite configuration from previous templates.
Running paster serve paster.ini reads configuration from the paster.ini file. If traclegos.conf is set in section [app:traclegos] of the paster.ini file, site configuration will be read from that file (or comma separated list of files). Other configuration in the [app:traclegos] section of the paster.ini file will override those in the [site-configuration] file(s) specified by traclegos.conf. Template variables may be specified in the [DEFAULTS] section of the paster.ini file which will override those given in the [variables] section of the traclegos.conf files.