2018-03-12 20:46:51 -05:00
|
|
|
# Universal Configuration Grammar.
|
2017-07-11 20:29:54 -05:00
|
|
|
|
2018-08-03 13:57:35 -05:00
|
|
|
[](https://travis-ci.org/zaphar/ucg)
|
|
|
|
|
2017-07-29 13:20:57 -05:00
|
|
|
This is an experiment in configuration management. The approach is **not**
|
2017-07-11 20:29:54 -05:00
|
|
|
to create a "parsable" config file format. We have plenty of
|
|
|
|
those. Instead we try to specify a grammar for describing
|
|
|
|
configuration values that can then target various configuration
|
|
|
|
formats to output to.
|
|
|
|
|
|
|
|
In theory this could support anything from command line flags to json
|
|
|
|
to yaml or toml or even xml.
|
|
|
|
|
|
|
|
The goal is to allow a global shared configuration repository that can
|
2017-07-29 13:20:57 -05:00
|
|
|
be version controlled, enforce _some_ typesafety, and output
|
2017-07-11 20:29:54 -05:00
|
|
|
configuration for any application regardless of that applications
|
|
|
|
preferred format.
|
|
|
|
|
2018-03-12 20:46:51 -05:00
|
|
|
## The Usual Warnings
|
|
|
|
|
|
|
|
This is still very much an experiment and the language and api can be expected
|
|
|
|
to change and mutate. It also probably has bugs and isn't yet the most user
|
|
|
|
friendly language and compiler to use. You have been warned.
|
|
|
|
|
2018-02-13 17:47:52 -06:00
|
|
|
## Usage
|
|
|
|
|
|
|
|
You can get ucg with cargo `cargo install ucg`.
|
|
|
|
|
|
|
|
Running ucg help will show the following output.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
Universal Configuration Grammar compiler.
|
|
|
|
|
|
|
|
USAGE:
|
|
|
|
ucg [SUBCOMMAND]
|
|
|
|
|
|
|
|
FLAGS:
|
|
|
|
-h, --help Prints help information
|
|
|
|
-V, --version Prints version information
|
|
|
|
|
|
|
|
SUBCOMMANDS:
|
2018-08-15 18:22:05 -05:00
|
|
|
build Build a specific ucg file.
|
2018-02-13 17:47:52 -06:00
|
|
|
help Prints this message or the help of the given subcommand(s)
|
2018-08-15 18:22:05 -05:00
|
|
|
inspect Inspect a specific symbol in a ucg file.
|
2018-02-13 17:47:52 -06:00
|
|
|
validate Check a specific ucg file for errors.
|
|
|
|
```
|
|
|
|
|
2018-07-04 12:48:33 -05:00
|
|
|
## compiling a file
|
|
|
|
|
|
|
|
```sh
|
2018-08-15 18:54:08 -05:00
|
|
|
Build a list of ucg files.
|
2018-07-04 12:48:33 -05:00
|
|
|
|
|
|
|
USAGE:
|
2018-08-15 18:54:08 -05:00
|
|
|
ucg build <INPUT>...
|
2018-07-04 12:48:33 -05:00
|
|
|
|
|
|
|
FLAGS:
|
|
|
|
-h, --help Prints help information
|
|
|
|
-V, --version Prints version information
|
|
|
|
|
|
|
|
ARGS:
|
2018-08-15 18:54:08 -05:00
|
|
|
<INPUT>... Input ucg files to build.
|
2018-07-04 12:48:33 -05:00
|
|
|
```
|
|
|
|
|
2018-03-11 20:39:50 -05:00
|
|
|
## Language Reference
|
2017-07-11 20:29:54 -05:00
|
|
|
|
2018-03-12 20:46:51 -05:00
|
|
|
https://docs.rs/ucg/
|