martes, enero 10, 2012

Crear instancia de Trac apuntando a un repositorio Subversion


#!/bin/bash
PROY=$1
if [ -z "$1" ];
then
        echo Por favor, introduzca el nombre del proyecto a crear
        read PROY
fi

ADMIN_USERNAME=$2
if [ -z "$2" ];
then
        echo Por favor, introduzca el usuario administrador del proyecto
        read ADMIN_USERNAME
fi

SVN=/srv/svn
if [ -d $SVN ]; then
        echo El directorio $SVN existe, continuamos con el proyecto
else
        mkdir $SVN
fi

#Creamos el svn

        mkdir $SVN/$PROY
        mkdir /tmp/$PROY
        mkdir /tmp/$PROY/trunk
        mkdir /tmp/$PROY/branches
        mkdir /tmp/$PROY/tags

#Importamos los directorios al SVN

        svnadmin create $SVN/$PROY --fs-type fsfs
        svn import /tmp/$PROY file://$SVN/$PROY -m "Inicio"

#Borramos directorios temporales

        rm -rf /tmp/$PROY

#Cambiamos permisos y propietario de los ficheros

        find $SVN/$PROY -type f -exec chmod 660 {} \;
        find $SVN/$PROY -type d -exec chmod 2770 {} \;
        chown -R www-data.www-data $SVN/$PROY

#Comprobamos si existe el directorio $DIR_TRAC , si no lo creamos

 DIR_TRAC=/srv/trac
 if [ -d $DIR_TRAC ]; then
  echo El directorio $DIR_TRAC existe, continuamos con el proyecto
 else
  mkdir $DIR_TRAC
 fi

#Importamos el SVN al TRAC y agregamos un administrador

        trac-admin $DIR_TRAC/$PROY initenv
  trac-admin $DIR_TRAC/$PROY permission add developer TRAC_ADMIN
  trac-admin $DIR_TRAC/$PROY permission add $ADMIN_USERNAME developer


#Cambiamos los permisos a los ficheros y directorios del trac

        find $DIR_TRAC/$PROY -type f -exec chmod 660 {} \;
        find $DIR_TRAC/$PROY -type d -exec chmod 2770 {} \;
        chown -R www-data.www-data $DIR_TRAC/$PROY