import json
import sys

header = """
Mailserver Options
==================

mailserver
~~~~~~~~~~

"""

template = """
{key}
{line}

{description}

{type}
{default}
"""

f = open(sys.argv[1])
options = json.load(f)

options = { k: v for k, v in options.items() if k.startswith("mailserver.") }

groups = [ "mailserver.loginAccount",
           "mailserver.certificate",
           "mailserver.dkim",
           "mailserver.fullTextSearch",
           "mailserver.redis",
           "mailserver.monitoring",
           "mailserver.backup",
           "mailserver.borg" ]

def print_option(name, value):
    if 'default' in v:
        if v['default'] == "":
            default = '- Default: ``""``'
        else:
            default = '- Default: ``{}``'.format(v['default'])
    else:
        default = ""
    print(template.format(
        key=k,
        line="-"*len(k),
        description=v['description'],
        type="- Type: ``{}``".format(v['type']),
        default=default))

print(header)
for k, v in options.items():
    if any([k.startswith(c) for c in groups]):
        continue
    print_option(k, v)

for c in groups:
    print(c)
    print("~"*len(c))
    print()
    for k, v in options.items():
        if k.startswith(c):
            print_option(k, v)