User defined configuration parameters with OpenPetra.build.config

From OpenPetra Wiki
Revision as of 15:05, 12 April 2011 by Thosteg (talk | contribs) (Restructured and added hint regarding nant initConfigFiles)
Jump to navigation Jump to search

You can define your own local (installation-specific) configuration settings such as

  • database and credentials you use
  • local paths for tools, etc.

All the configuration options are set in NAnt build files, which are just simple xml files. Just create a file OpenPetra.build.config in your OpenPetra root directory (the same directory you find the file OpenPetra.build in). As the contents will be different for each developer, it has aleady been marked in bazaar that it shall be ignored by version-control.

The shortest Postgree-SQL-example for OpenPetra.build.config (If you use standard parameters ...):

<?xml version="1.0"?>
<project name="OpenPetra-userconfig">
    <property name="DBMS.Type" value="postgresql"/>
    <property name="PostgreSQL.exe" value="C:\Program Files/PostgreSQL/9.0/bin/psql.exe"/>
    <property name="pgdump.exe" value="C:\Program Files/PostgreSQL/9.0/bin/pg_dump.exe" overwrite="false"/>
    <property name="projectfiles.templates-list" value="sharpdevelop3"/>
</project>

A more complex example:

<?xml version="1.0"?>
<project name="OpenPetra-userconfig">
    <property name="DBMS.Type" value="postgresql"/>
    <property name="PostgreSQL.exe" value="C:\Program Files/PostgreSQL/9.0/bin/psql.exe"/>
    <property name="pgdump.exe" value="C:\Program Files/PostgreSQL/9.0/bin/pg_dump.exe" overwrite="false"/>
    <property name="DBMS.DBName" value="myopenpetradb"/>
    <property name="DBMS.UserName" value="myusername"/>
    <property name="DBMS.Password" value="secret"/>
    <property name="projectfiles.templates-list" value="sharpdevelop3"/>
</project>

Important: after you changed any settings in the config-file, you have to run "nant initConfigFiles".

Explanation of the above example:

  • Database-System: this developer wants to work with PostgreSQL instead of the default SQLite. Therefore you must set the DBMS.Type property.
  • File-Locations: Usually, the psql.exe and pg_dump.exe are located by default in the Program Files directory, but in the case of 64bit Windows, the default Program Files directory for nant is "Program Files (x86)", where Postgresql is not installed in my case.
  • Database: You have the option to define a different database, it's user and password
  • projectfiles.templates-list: if you are only using SharpDevelop anyway, there is no need to create project files and solution file(s) for Visual Studio. By default, project files are generated for both IDEs.

Finding changeable properties

The configuration files where the default settings are set include:

  • any of the xml files in inc\nant\ (defines default values)
  • The file OpenPetra.build in the OpenPetra root directory (defines default values)

Just browse these files and find the properties you need to fit your configuration. Just copy the property into OpenPetra.build.config and alter it's value. The settings in OpenPetra.build.config (typically) override the default settings in these files. You can check this by looking if the original definition of the property has an attribute overwrite="false", which then shows that your values from OpenPetra.build.config will be given precedence.