Note
automatically create a SVN repository from a web project directory including trunk, branches and tags
- #!/bin/bash
- # Vous pouvez éditer ces variables selon vos besoins
- SVN_ROOT=“/srv/unit1/svn”
- SVN_TMP_PATH=“/tmp/svn”
- $SVN_USER=“svn”
- $SVN_GROUP=“svn”
- # Ce script doit être executé avec les droits de superutilisateur
- test –w /root;
- if [ ! “$?” -eq “0” ]; then
- echo “Vous devez executer ce script en tant que superutilisateur.”
- exit 0
- fi
- echo “#######################################”
- echo “Création d’un nouveau projet Subversion”
- echo “#######################################”
- echo “”
- echo “Tapez le nom du nouveau projet :”
- read PROJECT_NAME
- if [ -z “$PROJECT_NAME” ]; then
- echo “$PROJECT_NAME n’est pas un nom de projet valide.”;
- exit 0
- fi
- echo “Tapez maintenant le chemin du répertoire source :”
- echo “(Note: les répertoires trunk, branches et tags seront créés automatiquement)”
- read PROJECT_SOURCE_PATH
- if [ -z “$PROJECT_SOURCE_PATH” -o ! -d $PROJECT_SOURCE_PATH ]; then
- echo “$PROJECT_SOURCE_PATH n’est pas un répertoire valide.”;
- exit 0
- fi
- echo “Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH…”
- # Si le répertoire $SVN_ROOT n’existe pas, on le crée
- if [ ! -d $SVN_ROOT ]; then
- mkdir $SVN_ROOT
- fi
- # Si le répertoire $SVN_TMP_PATH n’existe pas, on le crée
- if [ ! -d $SVN_TMP_PATH ]; then
- mkdir $SVN_TMP_PATH
- fi
- # Création du répertoire du dépôt
- mkdir $SVN_ROOT/$PROJECT_NAME
- # Création d’un répertoire temporaire de stockage avant import
- mkdir $SVN_TMP_PATH/$PROJECT_NAME
- mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches
- mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags
- mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
- # Copie des fichiers originaux dans le répertoire temporaire
- cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
- # Création du dépôt et import depuis le répertoire créé
- svnadmin create $SVN_ROOT/$PROJECT_NAME
- svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m “Initial import”
- # Attribution des permissions à Apache sur le repertoire du dépot
- chown -R $SVN_USER:$SVN_GROUP $SVN_ROOT/$PROJECT_NAME
- # Suppression du répertoire temporaire
- rm -rf $SVN_TMP_PATH/$PROJECT_NAME
- # Done !
- echo “”
- echo “Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !”