repo.libs.tools.require_bundle(node, 'php')
repo.libs.tools.require_bundle(node, 'postfix')

directories = {
    '/opt/postfixadmin': {},
    '/opt/postfixadmin/templates_c': {
        'owner': 'www-data',
        'group': 'www-data',
        'needs': {
            'git_deploy:/opt/postfixadmin',
        },
    },
    '/var/mail/vmail': {
        'owner': 'nobody',
        'group': 'nogroup',
    },
}

git_deploy = {
    '/opt/postfixadmin': {
        'repo': 'https://github.com/postfixadmin/postfixadmin.git',
        'rev': 'postfixadmin-{}'.format(node.metadata['postfixadmin']['version']),
    },
}

files = {
    '/opt/postfixadmin/config.local.php': {
        'content_type': 'mako',
        'context': {
            'setup_password': node.metadata['postfixadmin']['setup_password'],
            'admin_email': node.metadata['postfixadmin']['admin_email'],
            'database_password': node.metadata['postgresql']['roles']['postfixadmin']['password'],
        },
        'needs': {
            'git_deploy:/opt/postfixadmin',
        },
    },
    '/etc/postfix/pgsql/relay_domains.cf': {
        'content_type': 'mako',
        'triggers': {
            'svc_systemd:postfix:restart',
        },
    },
    '/etc/postfix/pgsql/virtual_alias_maps.cf': {
        'content_type': 'mako',
        'triggers': {
            'svc_systemd:postfix:restart',
        },
    },
    '/etc/postfix/pgsql/virtual_domains_maps.cf': {
        'content_type': 'mako',
        'triggers': {
            'svc_systemd:postfix:restart',
        },
    },
    '/etc/postfix/pgsql/virtual_mailbox_maps.cf': {
        'content_type': 'mako',
        'triggers': {
            'svc_systemd:postfix:restart',
        },
    },
}
