#!/bin/bash # Usage Requirements if [ -z "$2" ] then echo "Usage:" echo "newproject.sh \"user1 user2 user3\"" echo "Required:" echo "Param 1: project name ( quoted if spaces are present )" echo "Param 2: admin users all in quotes, space delimited" exit -1 fi # SETUP # -- Permissions CHOWN_USER_GROUP=www-data:root # -- SVN Setup SVN_DIR=/var/svn SVN_FS_TYPE=fsfs SVN_URL=file://$SVN_DIR # -- TRAC Setup TRAC_DIR=/var/trac TRAC_SQL_CONNECTION=sqlite:$_TRAC_DIR/db/trac.db TRAC_TEMPLATE_DIR=/usr/share/trac/templates TRAC_ADMINS = $2 # ---- TRAC PLUGINS TRAC_PLUGINS[1]="tramplugin.* = disabled" TRAC_PLUGINS[2]="webadmin.* = enabled" #TRAC_PLUGINS[X]="plugin=enabled/disabled" # --------------------- You should not have to modify below this line ---------------------------- # Create the SVN repository. cd $SVN_DIR svnadmin create $1 --fs-type $SVN_FS_TYPE chown -R $CHOWN_USER_GROUP $1 # Create the trac env, and link with svn repo. cd $TRAC_DIR trac-admin $1 initenv $1 $TRAC_SQL_CONNECTION $SVN_DIR/$1 $TRAC_TEMPLATE_DIR chown -R $CHOWN_USER_GROUP $1 # Remove anonymous access from the trac project. trac-admin $1 permission remove anonymous LOG_VIEW FILE_VIEW WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW REPORT_VIEW REPORT_SQL_VIEW TICKET_VIEW TICKET_CREATE TICKET_MODIFY BROWSER_VIEW TIMELINE_VIEW CHANGESET_VIEW ROADMAP_VIEW MILESTONE_VIEW # Add default TRAC_ADMIN users. for user in ${TRAC_ADMINS[@]} do trac-admin $1 permission add $user TRAC_ADMIN done # Add the components to the trac.ini echo "" >> $TRAC_DIR/$1/conf/trac.ini echo "[components]" >> $TRAC_DIR/$1/conf/trac.ini for plugin in ${TRAC_PLUGINS[@]} do echo "$plugin" >> $TRAC_DIR/$1/conf/trac.ini done # Create the Initial Repository Structure svn mkdir --username michael -m "Initial Repository Structure" \ $SVN_URL/svn/$1/branches \ $SVN_URL/svn/$1/tags \ $SVN_URL/svn/$1/trunk \ $SVN_URL/svn/$1/vendor # End of script exit