directories = {
    '/opt/matrix-media-repo': {
        'owner': 'matrix-media-repo',
        'group': 'matrix-media-repo',
    },
    '/opt/matrix-media-repo/src': {
        'owner': 'matrix-media-repo',
        'group': 'matrix-media-repo',
    },
    '/var/matrix/media': {
        'owner': 'matrix-media-repo',
        'group': 'matrix-media-repo',
    },
}

users = {
    'matrix-media-repo': {
        'home': '/opt/matrix-media-repo',
    },
}

files = {
    '/opt/matrix-media-repo/config.yaml': {
        'owner': 'matrix-media-repo',
        'content_type': 'mako',
        'triggers': {
            'svc_systemd:matrix-media-repo:restart',
        },
    },
    '/etc/systemd/system/matrix-media-repo.service': {
        'triggers': {
            'action:systemd-reload',
            'svc_systemd:matrix-media-repo:restart',
        },
    },
}

git_deploy = {
    '/opt/matrix-media-repo/src': {
        'repo': 'https://github.com/turt2live/matrix-media-repo.git',
        'rev': node.metadata['matrix-media-repo']['version'],
        'triggers': {
            'action:matrix-media-repo_build',
            'svc_systemd:matrix-media-repo:restart',
        },
    },
}

actions = {
    'matrix-media-repo_build': {
        'command': \
            'chown -R matrix-media-repo:matrix-media-repo /opt/matrix-media-repo/src && ' + \
            'sudo -u matrix-media-repo bash -c "cd /opt/matrix-media-repo/src && ' + \
            'GOBIN=/opt/matrix-media-repo/src/bin go install -v ./cmd/compile_assets && ' + \
            '/opt/matrix-media-repo/src/bin/compile_assets && ' + \
            'GOBIN=/opt/matrix-media-repo/src/bin go install -ldflags \\\"' + \
            '-X github.com/turt2live/matrix-media-repo/common/version.GitCommit=$(cat /opt/matrix-media-repo/src/.bundlewrap_git_deploy) ' + \
            '-X github.com/turt2live/matrix-media-repo/common/version.Version={}\\\" '.format(node.metadata['matrix-media-repo']['version']) + \
            '-v ./cmd/..."',
        'triggered': True,
        'needs': {
            'pkg_apt:',
        },
    },
}

svc_systemd = {
    'matrix-media-repo': {
        'needs': {
            'action:matrix-media-repo_build',
            'file:/etc/systemd/system/matrix-media-repo.service',
            'file:/opt/matrix-media-repo/config.yaml',
            'postgres_db:matrix-media-repo',
        },
    },
}
