#!/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