The Helga File Structure

The file structure is under revision. This page is currently a proposal, and not supported by the Shell.

An example Helga file structure:

  • <HELGAROOT>/
    • dist/
      • v1.0/
        • shell
        • web
      • v2.0/
      • r1398/
      • trunk/
    • site/
      • <PROJECTNAME>/
      • global/
        • r138/
        • r142/
        • trunk/

The Helga file structure supports two main ends:

  1. Helga code - HelgaShell, HelgaWeb, and Shell support scripts - is kept separate from all site-specific files.
  2. Multiple concurrent versions may exist of both the Helga Project and site-specific branches by integrating with Helga Project and site-local subversion repositories.

A Helga site is located entirely under HELGAROOT, as it is referred to through the Shell code. For many Helga sites this is /helga.

Beneath HELGAROOT, the file structure splits into two branches: "dist" and "site", to hold Helga Project files and site-specific files, respectively.

dist stores your various versions of Helga (see Upgrading Helga for more info on maintaining multiple Helga versions). Official releases are designated by directory names beginning with the letter v followed by the version number (see above example file structure). Specific revisions of Helga are designated as "r<revision number>". Another branch might be named "trunk" to hold an svn checkout of the Helga Project repository trunk, updated to always hold the most recent, bleeding-edge Helga code.

Each dist/<version> folder has a shell/ and a web/ directory, holding the code for HelgaShell and HelgaWeb.

Beneath site, the file structure is further divided by project. One such project always exists named "global", to hold all site-wide files.

Each site/<project> folder is divided in a similar fashion to dist. Revision numbers are tagged with "r<revision number>", and custom names such as "trunk" are supported. If you don't use subversion to version your site files, you may also maintain these distinct branches by hand. See Tool Versioning for more information on this.

Within each site/<project>/<version> folder, the project may be organized however you like. Helga comes with a default file structure for new projects; this project-creation code lives in shell/atypes/project.tcl and can be modified to your site's liking.