Here are three approaches to a config file format:
- Hierarchical
Sections are organized in a single file in a hierarchy
A backup-set can have sub-sections that define the config
for various plugins:
    ...
    [backupsets]
    [[default_backup]]
    key = value
    ...
    [[[mysql-plugin]]]
    host = remote-host
    ...

- Directory
Hierarchy is broken down into different files in
different directories:
holland.conf
# backupset configs
backupsets/
    default_backup.conf
# global backup-plugin configs
providers/
    mysqldump.conf
    lvm.conf
    pgdump.conf
    ...
# global helper plugin library configs
helpers/
    mysqlclient.conf
    lvmlib.conf
    ...

- Namespaces
Single file, with standard ini sections named in a special
way to denote namespaces.
holland.conf:
[holland]
backup_directory = /<somepath>/

[holland:logging]
filename = /var/log/holland.log
...

[backup:default_backup]
provider = mysqldump
<mysqldump settings for 'default_backup'>
[backup:default_backup:mysqlclient]
# mysqldump backups utilize the mysqlclient lib
host = 192.168.100.15 # some remote host
user = remote-backup-user
password = ...
[backup:default_backup:compression]
# suppose some general compression plugin we want to override
cmd = lzop -U --fast

[plugins:backup:mysqldump]
# global options for the mysqldump backup plugin ("provider")
# these are overriden in [backup:<name>]
file_per_database = yes
# exclude_databases = test
# include_databases = production_db
# regex = production_*
# extra_args = --flush-privileges --ignore-table production_db.sessions

[plugins:lib:mysqlclient]
host = localhost
socket = /var/lib/mysql/mysql.sock
user = backup_user
password = password
ssl = no
compress = no
