#!/bin/bash

CONFIG="/etc/redmine/default/redmine-gitolite"
LOGNAME="init-redmine-repositories"

die() {
    echo "$0: $*" >&2
    echo "$0: $*" | logger -t "${LOGNAME}"
    exit 1
}

if [ `whoami` != 'root' ]; then
    die "Need to be run as root"
fi

. /etc/redmine/default/redmine-gitolite || die "$CONFIG"

[ "${REDMINE_SERVER}"        ] || die "Missing setting: REDMINE_SERVER"
[ "${REDMINE_REPO_DIR}"      ] || die "Missing setting: REDMINE_REPO_DIR"
[ "${REDMINE_REPO_TEMPLATE}" ] || die "Missing setting: REDMINE_REPO_TEMPLATE"

REDMINE_SCM=git
REDMINE_REPO_SUFFIX=.git
REDMINE_REPO_URL=${REDMINE_REPO_DIR}
REDMINE_API_KEYFILE=/etc/redmine/default/reposman-api_key

[ -f "${REDMINE_API_KEYFILE}" ] || die "FATAL: Missing reposman api key file: ${REDMINE_API_KEYFILE}"

/var/www/redmine/extra/svn/reposman.rb	\
    -v						\
    --redmine "${REDMINE_SERVER}"		\
    --scm "${REDMINE_SCM}"			\
    --suffix "${REDMINE_REPO_SUFFIX}"		\
    --base-dir "${REDMINE_REPO_DIR}"		\
    --owner "${GITOLITE_USER}"			\
    --url "${REDMINE_REPO_URL}"			\
    --key-file=${REDMINE_API_KEYFILE}		\
    2>&1 | logger -t "${LOGNAME}" || die "Reposman failed"

su - ${GITOLITE_USER} -c /var/www/redmine/extra/gitolite/redmine-gitolite-conf 2>&1 | logger -t "${LOGNAME}" || die "redmine-gitolite-conf failed"
