Fork Me On GitLab

Providence can be used as a base for generating config too. Take a look at the providence-config module for an in depth example of the config markup syntax. But using the config is not always preferrable, or trivial to utilize in it’s raw form. So in order to transform / build the config, and in order to validate or test the config written before deployed, we have a “config helper tool”, or pvdcfg.

The tool have two main functions:

  • pvdcfg resolve: Parse and compile the target config or configs and print the end result out to standard output.

      $ pvdcfg -I providence/ print resources/my_service.cfg
      {
        http {
          port = 8080
        }
        db {
          host = "localhost:1234"
        }
      }
    
  • pvdcfg validate: Validate a set of config files from a base config. This is similar to the ‘print’ command, but prints nothing on success, and only the error message if the parsing fails at any step. It will only print the first error it finds.

      $ pvdcfg -I providence/ validate resources/good.cfg
      $ pvdcfg -I providence/ validate --strict resources/*.cfg
      Error in my_service.cfg line 23 position 6
          No such field 'blah' in config.Service
            blah = "nothing"
      ------^
    

Included configs must be found using relative path from the parsed file. This includes parent directories (..). Absolute path includes are not allowed.