developサーバにて、プロジェクトを作成するシェルスクリプト
projectadd.sh
#!/bin/sh if [ $# != 3 ] then echo "Usage: $0 <project_name> <user_name> <password>" exit 1 fi PROJECT_NAME=$1 SVN_DIR=/var/svn/${PROJECT_NAME} TRAC_DIR=/var/trac/${PROJECT_NAME} if [ -f ${SVN_DIR} ] then echo "Directory ${SVN_DIR} already exists. Please remove it and try again." exit 1 fi if [ -f ${TRAC_DIR} ] then echo "Directory ${TRAC_DIR} already exists. Please remove it and try again." exit 1 fi # create Subversion repository mkdir ${SVN_DIR} svnadmin create --fs-type=fsfs ${SVN_DIR} chown -R apache:apache ${SVN_DIR} cp ${SVN_DIR}/conf/svnserve.conf ${SVN_DIR}/conf/svnserve.conf.ORG cat >> ${SVN_DIR}/conf/svnserve.conf <<EOF anon-access = none auth-access = write password-db = passwd authz-db = authz realm = ${PROJECT_NAME} Repository EOF cp ${SVN_DIR}/conf/passwd ${SVN_DIR}/conf/passwd.ORG echo "$2 = $3" >>${SVN_DIR}/conf/passwd chmod 600 ${SVN_DIR}/conf/passwd cp ${SVN_DIR}/conf/authz ${SVN_DIR}/conf/authz.ORG cat >>${SVN_DIR}/conf/authz <<EOF [groups] manager = $2 developer = $2 [/] * = r [${PROJECT_NAME}:/] @manager = rw [${PROJECT_NAME}:/tags] @manager = rw [${PROJECT_NAME}:/branches] @developer = rw [${PROJECT_NAME}:/trunk] @developer = rw EOF svn mkdir file://${SVN_DIR}/trunk file://${SVN_DIR}/tags file://${SVN_DIR}/branches -m "Create trunk, tags, branches." # create Trac project mkdir ${TRAC_DIR} trac-admin ${TRAC_DIR} initenv ${PROJECT_NAME} sqlite:db/trac.db svn ${SVN_DIR} /usr/share/trac/templates cp trac-0.10.3.1-ja-1/contrib/trac-post-commit-hook ${SVN_DIR}/hooks/ chmod +x ${SVN_DIR}/hooks/trac-post-commit-hook cat >> ${SVN_DIR}/hooks/post-commit <<EOF #!/bin/sh REPOS="\$1" REV="\$2" export LANG=ja_JP.UTF-8 LOG=\`/usr/bin/svnlook log -r \$REV \$REPOS\` AUTHOR=\`/user/bin/svnlook author -r \$REV \$REPOS\` /usr/bin/python ${SVN_DIR}/hooks/trac-post-commit-hook \\ -p "${TRAC_DIR}" \\ -r "\$REV" \\ -u "\$AUTHOR" \\ -m "\$LOG" EOF chmod +x ${SVN_DIR}/hooks/post-commit chown -R apache:apache ${TRAC_DIR} chmod -R a+wr ${TRAC_DIR}
projectdel.sh
#!/bin/sh if [ $# != 1 ] then echo "Usage: $0 <project_name>" exit 1 fi PROJECT_NAME=$1 SVN_DIR=/var/svn/${PROJECT_NAME} TRAC_DIR=/var/trac/${PROJECT_NAME} #if [ ! -f ${SVN_DIR} ] #then # echo "Directory ${SVN_DIR} does not exist." # exit 1 #fi # #if [ ! -f ${TRAC_DIR} ] #then # echo "Directory ${TRAC_DIR} does not exist." # exit 1 #fi rm -fr ${SVN_DIR} rm -fr ${TRAC_DIR}