Add tmpl_render(), a function to provide a primitive template
renderer. It takes a dictionary for values to replace variables
shaped {some-variable} in templates found by their name. For now, the
templates are defined in the templates module instead of being read
from a template directory. The values may be lists, in which case
they are rendered with a delimiter, defaulting to ",".
Using an existing template engine like jinja2 is tempting but would
introduce additional dependencies jw-pkg is trying hard to avoid.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add a sub-module for code that's too specific to jw.pkg.cmds.projects
to go into jw.pkg.lib but too generic to go into a command module.
Long-term, it might be a good idea to create a place for code which
jw-pkg doesn't exclusively use for its own purposes. jw.lib, for
example. Then, liberated from the burden to be generally useful also
externally, jw.pkg.lib might be a better fit for code currently in
jw.pkg.cmds.xxx.lib, and a more natural place usable across
subcommands.
Signed-off-by: Jan Lindemann <jan@janware.com>