mirror of https://github.com/sipwise/ngcpcfg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
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
|
|
/////////////////////////////
|