Scaffold - Projects

Home

A project is created using PROJECT command in control file. Once created, any number of generators may be used on it to add content.

The project always has a name and may have a description. It must be associated with an output path that represents top level directory for all the file systems objects that scaffold will generate, based on prescription.

Each project may host variables that may be manipulated using regular commands. To indicate that a project variable is being referenced/manipulated use PRJ:: before the name of the variable:

1 SET PRJ::NAME funky_One
2 SET PRJ::UNIXNAME ${PRJ::NAME} 

A number of variables are initialised for each project (see below) at the time it is created. Any predefined variables may be manipulated just like any other variable, but at build stage Scaffold may throw an error is some are not set or have improper values (a project without a name, for example).

List of predefined variables:

NAME
the name of the project. It is extracted from the PROJECT command.
Only first entry is used by scaffold.
UNIXNAME
the name of the project converted in a form usable for file names and such. It is derived from the name in PROJECT command.
The conversion looks for letters and numbers and turns anything else into underscores.
Only first entry is used by scaffold.
CLASS
the name of the project converted in a CamelCase form (first letter is capitalised, too). It is derived from the name in PROJECT command.
Basically, this is the unix name with underscores removed and first letter following them capitalised.
Scaffold does not use this variable.
DESCRIPTION
the description of the project. It is also extracted from the PROJECT command.
Only first entry is used by scaffold.
OUTPATH
Fully qualified path of the destination directory. It is guessed using the global PRJPATH variable and the name of the project in unix format.
Only first entry is used by scaffold.
GENERATORS
The list of generators that were added to this project. Each time GEN command is used an entry is added to current project with the name of the generator that was used. That means that, if same generator was invoked more than one time, this variable may contain several entries with same name.

Related source code documentation:

Home