-
Notifications
You must be signed in to change notification settings - Fork 0
Reference Directory Layout
madscatt edited this page Jun 20, 2026
·
2 revisions
-
when generating a genapp application, the genapp tool is run from some directory BASEDIR
- the BASEDIR directory must contain, at minimum:
- a directives.json file
- a menu.json file
- a subdirectory modules containing a collection of module files
-
the genapp tool $ genapp.pl is run from within the directory and each language LANGUAGE listed in the directives.json file will create output in BASEDIR/output/LANGUAGE
- any files in the add/ subdirectory will be copied directly over to the output
- this is useful for additional files such as images that are needed for the background or possibly referenced in links in included html or docx
- during the run of genapp.pl, if BASEDIR/LANGUAGE exists for any language:
- the BASEDIR/LANGUAGE/directives.json will be appended to the BASEDIR/directives.json definitions
- nb:
- "languages" tag can not be included in a language specific json
- json redefinitions of any top level tags will be replaced
- e.g. if BASEDIR/directives.json has "sometag" : "abc" and BASEDIR/LANGUAGE/directives.json has "sometag" : "xyz", the value for "sometag" will be "xyz" for that LANGUAGE
- this is true regardless of tag contents ( don't fall into the trap that some sub level will be replaced at that sub level )
- e.g. BASEDIR/directives.json contains a value for "sometag":
"sometag" : { "abc" : "hi", "def" : "there" }
- and BASEDIR/LANGUAGE/directives.json contains:
"sometag" : { "def" : "not here" }
- the final value for "sometag" seen for this language will be
"sometag" : { "def" : "not here" }
- the BASEDIR/LANGUAGE/menu.json will replace the BASEDIR/menu.json for that LANGUAGE
- any BASEDIR/LANGUAGE/modules/module.json will replace the module.json for that module for that LANGUAGE
- any files and directories BASEDIR/LANGUAGE/add will be copied over to output (this occurs after BASEDIR/add copies, so these will overwrite duplicate files... a warning will be generated if an overwrite occurs