#!/bin/sh

case $1 in

create)

mkdir "$PROJECTS_PATH/scm/svn/$PROJECT_NAME"
svnadmin create "$PROJECTS_PATH/scm/svn/$PROJECT_NAME"
svn import "$PROJECTS_PATH/scm/svn-template" "file://$PROJECTS_PATH/scm/svn/$PROJECT_NAME" -m "initial commit" > /dev/null

chown apache2: "$PROJECTS_PATH/scm/svn/$PROJECT_NAME" -R

PROJECTS_PATH_ESCAPED=`echo "$PROJECTS_PATH" | sed -e "s|/|\\\\\/|g"`

subst "s/repository_dir =/repository_dir = $PROJECTS_PATH_ESCAPED\/scm\/svn\/$PROJECT_NAME/g" "$PROJECTS_PATH/env/$PROJECT_NAME/conf/trac.ini"
subst "s/repository_type =/repository_type = svn/g" "$PROJECTS_PATH/env/$PROJECT_NAME/conf/trac.ini"

cat > $APACHE_PATH/extra-start.d/101-appliance-trac-scm-svn-$PROJECT_NAME.conf << EOF
appliance-trac-scm-svn-$PROJECT_NAME=yes
EOF
cat > $APACHE_PATH/extra-available/appliance-trac-scm-svn-$PROJECT_NAME.conf << EOF
<Location /appliance-trac/scm/svn/$PROJECT_NAME>
  AuthName "$PROJECT_NAME : svn repo"
  AuthType Basic
  AuthUserFile /var/www/appliance-trac/passwd
  AuthGroupFile /var/www/appliance-trac/group
  Require group $PROJECT_NAME
</Location>
EOF
a2chkconfig > /dev/null
service httpd2 restart > /dev/null

;;

drop)

rm -rf "$PROJECTS_PATH/scm/svn/$PROJECT_NAME"

rm -f $APACHE_PATH/extra-start.d/101-appliance-trac-scm-svn-$PROJECT_NAME.conf
rm -f $APACHE_PATH/extra-available/appliance-trac-scm-svn-$PROJECT_NAME.conf

;;

init-template)

cd /var/www/appliance-trac/scm/svn-template
mkdir trunk
mkdir tags
mkdir branches

;;

esac
