users = {
    'minecraft': {},
}

directories = {
    '/opt/minecraft': {
        'owner': 'minecraft',
    },
    '/var/lib/minecraft': {
        'owner': 'minecraft',
    },
}

downloads = {
    '/opt/minecraft/server.jar': {
        'url': node.metadata.get('minecraft/download'),
        'sha256': node.metadata.get('minecraft/sha256'),
        'needs': {
            'directory:/opt/minecraft',
        },
    }
}


for name, properties in node.metadata.get('minecraft/servers').items():
    directories[f'/var/lib/minecraft/{name}'] = {
        'owner': 'minecraft',
    }

    files[f'/var/lib/minecraft/{name}/eula.txt'] = {
        'content': 'eula=true',
        'owner': 'minecraft',
        'needed_by': {
            f'svc_systemd:minecraft-{name}'
        },
        'triggers': {
            f'svc_systemd:minecraft-{name}:restart'
        },
    }

    translations = {True: 'true', False: 'false', None: ''}
    files[f'/var/lib/minecraft/{name}/server.properties'] = {
        'content': '\n'.join(
            f'{key}={translations.get(value, value)}'
                for key, value in properties.items()
        )+ '\n',
        'owner': 'minecraft',
        'needed_by': {
            f'svc_systemd:minecraft-{name}'
        },
        'triggers': {
            f'svc_systemd:minecraft-{name}:restart'
        },
    }

    svc_systemd[f'minecraft-{name}'] = {}