12 releases
0.5.0 | Jun 14, 2023 |
---|---|
0.4.3 | Apr 21, 2022 |
0.3.4 | Apr 11, 2022 |
0.3.0 | Mar 31, 2022 |
0.1.0 | Mar 6, 2022 |
#791 in Configuration
53KB
780 lines
Confpiler (cli)
This cli tool is intended to "compile" an ordered set of configuration files into a single, flattened representation suitable for exporting to environment variables.
For a complete list of subcommands/option (and more detailed help), see the
relevant --help
section.
A simple example:
# given a file, config.yaml
foo:
bar: 10
baz: false
hoof: https://some.url
$ confpiler build config.yaml
FOO__BAR="10"
FOO__BAZ="false"
HOOF="https://some.url"
A more complicated example
Given some files like the following:
somedir/
global.yaml
myapp/
default.yaml
development.yaml
production.yaml
staging.yaml
We can compile to a single representation of the "production" configuration with
$ cd somedir
$ confpiler build global.yaml myapp --env production --json
Which would yield a dictionary in JSON form representing merging global.yaml
,
myapp/default.yaml
and myapp/production.yaml
.
Currently this tool requires a "default" file when processing a directory.
Checking
Substituting check
for build
will just verify whether or not the
configuration could be made given the options specified.
$ confpiler check global.yaml myapp --env staging
# or stricter
$ confpiler check global.yaml myapp --env staging --strict
Supported formats
The following formats are currently supported:
- JOSN
- TOML
- YAML
- INI
Dependencies
~19–34MB
~552K SLoC