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 !"