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:
|