source: scripts/trac-create @ 56

Revision 56, 1.8 KB checked in by AllenJB, 2 years ago (diff)

scripts:/trac-*: My trac instance management scripts

  • Property svn:executable set to *
Line 
1#!/bin/bash -e
2
3usage() {
4        echo Create a Trac project
5        echo "Usage: $0 <project-dir> \"<project-name>\" [nosvn]"
6        echo -e "\tnosvn     = Don't create SVN repo (use existing)"
7        echo -e "\t<project-dir> must be a valid directory name"
8    echo -e "\t<project-name> must be enclosed with quotes"
9        exit
10}
11
12if test -z "$1"
13then
14        # No command-line arguments.
15        usage
16fi
17
18if test -z "$2"
19then
20        # No command-line arguments.
21        usage
22fi
23
24NOSVN="0"
25if [ "X$3" = "Xnosvn" ]
26then
27        NOSVN="1"
28fi
29
30PROJECT="$1"
31PROJECT_NAME="$2"
32HOST_DIR="/home/allen/allenjb.me.uk"
33SVN_DIR="${HOST_DIR}/svn/${PROJECT}"
34TRAC_DIR="${HOST_DIR}/trac/${PROJECT}"
35
36if [ "X$NOSVN" = "X0" ]
37then
38        echo Creating SVN project: ${PROJECT}
39        mkdir ${SVN_DIR}
40        svnadmin create ${SVN_DIR} --fs-type fsfs
41        svn import ${HOST_DIR}/svn/template "file://${SVN_DIR}" -m "Repository setup"
42
43        echo Setting permissions
44        find ${SVN_DIR} -type f -exec chmod 660 {} \;
45        find ${SVN_DIR} -type d -exec chmod 2770 {} \;
46        chown -R allen:apache ${SVN_DIR}
47fi
48
49echo Create Trac project: ${PROJECT}
50
51#echo Set the path to SVN repository to: ${SVN_DIR}
52### initenv <projectname> <db> <repostype> <repospath>
53### <projectname> <db> <repostype> <repospath>
54trac-admin ${TRAC_DIR} initenv "${PROJECT_NAME}" sqlite:db/trac.db svn ${SVN_DIR} --inherit=${HOST_DIR}/trac.ini.inherit
55find ${TRAC_DIR} -type f -exec chmod 660 {} \;
56find ${TRAC_DIR} -type d -exec chmod 2770 {} \;
57chown -R allen:apache ${TRAC_DIR}
58
59# Add the authz_module_name value, or SVN interaction won't work.
60echo "[trac]" >> ${TRAC_DIR}/conf/trac.ini
61echo "authz_module_name = ${PROJECT}" >> ${TRAC_DIR}/conf/trac.ini
62
63echo "" >> ${HOST_DIR}/svn.access
64echo "[${PROJECT}:/]" >> ${HOST_DIR}/svn.access
65echo "@global_users = rw" >> ${HOST_DIR}/svn.access
66
67echo Public Subversion and Trac project created.
68echo Edit svn.access to modify access permissions.
Note: See TracBrowser for help on using the repository browser.