Hacking ======= Source Layout ------------- The frontend command ngcpcfg is in _sbin/_. Each of its subcommands are implemented in _scripts/_. The _functions/_ directory contains a shell library to be used by the various shell script commands. The _lib/_ directory contains Template library files to be used (via the PROCESS directive) by the _*.tt2_ template files. And the _helper/_ directory contains various helper tools used by the various scripts and build system. Templating ---------- Of very significant note is the 'tt2-process' helper, which performs most of the work when processing the templates. This process is started only once during the whole ngcpcfg run, and loads and validates all the YAML files, and then processes each input/output pairs on an independent process to parallelize the execution. All the configuration loaded from the YAML files is flattened into a dot-separated namespaced tree, which can be accessed directly by any template file even if no other code has references to those configurations. ///////////////////////////// // vim: ft=asciidoc tw=80 ai /////////////////////////////