The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::genconf - The world's simplest config file generator

SYNOPSIS

  # Create a config template
  vi templates/config/myapp_local.yml

    app_name: [% APP_NAME %]
    is_production: [% IS_PRODUCTION %]

  # Add the required rontment variables
  export APP_NAME=LOLCatter
  export IS_PRODUCTION=0

  # Run genconfig
  genconfig templates/config

DESCRIPTION

Genconf is a very simple config file generation tool. Source control config templates; use a simple command to genrate|update whatever environment's config files.

TEMPLATE TIPS

  # Make config values required by using the assert plugin, which causes the
  # template processor to throw an error if undef values are returned:
  [% USE assert %]
  app_name: [% env.assert.APP_NAME %]

  # Cut out optional config sections with a simple IF:
  [% IF DB_CONN_STRING and DB_USERNAME and DB_PASSWORD %]
  db_connection_info:
    - [% DB_CONN_STRING %]
    - [% DB_USERNAME %]
    - [% DB_PASSWORD %]
  [% END %]

  # Use the TAGS directive if you need [% in your config:
  [% TAGS [- -] %]
  [%User]
  name = [- USER_NAME -]
  password = [- USER_PASSWORD -]

How it helps:

  • Store all configs in version control

  • Never commit passwords to version control

  • Keep team members' dev config schemas in sync

ARGUMENTS

--config-dir

Specify the config file output directory