How Wigwam Is Organized

The files in Wigwam are laid out to mimic the standard Unix/GNU filesystem hierarchy, with one major change. In Unix, /usr is used to represent "files only needed once the system is booted." We don't care about that, hence we don't have /usr. However, files which are installed as Wigwam packages should place their files in a similar directory, $PLAYPEN_ROOT/ext. You should never hand-edit files in $PLAYPEN_ROOT/ext, nor should ext be checked into your CVS repository.

A project using Wigwam contains a few major directories. They are generally checked into CVS, except that all the files installed by packages are in ext/, so those should not be cvs commit'd.

Usually the other directories are similar to the normal Unix hierarchy:

lib

Shared libraries and other language libraries: they contain helpful functions used by programs.

bin

Programs run by a users.

etc

Project configuration files.

www

Web documents: html and template files.

src

Source code that must be compiled (such as C or Java).

ext

External packages: programs, libraries and data provided by code outside your project. The directory is not checked into CVS.

In order to configure services, developers must put configuration information into the etc/roles/ROLE/config and etc/clusters/CLUSTER/config files. These environment variables may be interpreted in any way the services please, but often implementors use the sub-conf script to substitute patterns of the form __ENVAR__ with the value of the environment variable ENVAR. See the Section called Configuring Wigwam Services in Chapter 3 for more information.