#!/bin/sh
# $Id: trac.sh,v 3.2.1.1 2016/03/19 09:37:50 asau Exp $
set -e

create () {
    path="$1"
    : ${path:?path required}
    : ${DBURL:=postgres:///trac}
    mkdir -p "${path}"
    (echo; echo "${DBURL}") | trac-admin "${path}" initenv # project name, db connection
    trac-admin "${path}" permission add admin TRAC_ADMIN
    echo admin::$(printf admin::admin | md5 -q) > "${path}/.passwd"
    # Drop sample settings:
    psql -d "${DBURL}" -c "delete from milestone"
    psql -d "${DBURL}" -c "delete from component"
    psql -d "${DBURL}" -c "delete from version"
}

start () {
    path="$1"
    : ${path:?path required}
    tracd -d --pidfile "${path}/.trac.pid" -s -p 8000 -b localhost -a "*,${path}/.passwd," "${path}"
}

stop () {
    path="$1"
    : ${path:?path required}
    kill $(cat "${path}/.trac.pid")
}

cmd="$1"
shift
case "${cmd}" in
    create) create ${1:+"$@"};;
    start) start ${1:+"$@"};;
    stop) stop ${1:+"$@"};;
esac
