|
Written by Martino Vedana
|
|
Monday, 27 September 2010 23:04 |
Se avete l'esigenza di creare frequentemente nuovi repositories svn con impostazioni uguali (ad esempio uno per ogni sito web che sviluppate) è sufficiente scrivere un semplice script bash che automatizzi i semplici comandi che vengono lanciati a mano centinaia di volte.
Lo script presuppone che:
- tutti i repositories risiedano sotto un'unica directory (ad esempio /home/svn/repositories)
- vi siano due directory conf e hooks che vengono usate come master che verranno linkate in tutti i repositories creati
la struttura delle directory è quindi del tipo:
/home/svn/repositories /home/svn/repositories/hooks
/home/svn/repositories/conf /home/svn/repositories/repo1
/home/svn/repositories/repo2
/home/svn/repositories/repo3 ....
Lo script creerà i vari repository repo4, repo5, repo6, etc... creando un link simbolico alle directory hooks e conf in modo che una qualsiasi modifica ai files in una delle directory verrà automaticamente applicata a tutti i repository creati (ad esempio la password di un utente)
nella directory /etc/bin/ creare un file con il seguente contenuto:
#! /bin/bash
echo -n "Specifica un nome repository SENZA SPAZI E CARATTERI SPECIALI (solo lettere e numeri)" read -e NAME DIRECTORY="/repositories/"
if [ -d "$DIRECTORY" ]; then cd $DIRECTORY if [ ! -d "$NAME" ]; then # Control will enter here if $DIRECTORY doesn't exist /usr/bin/svnadmin create $NAME if [ -d "$DIRECTORY/$NAME" ]; then cd $DIRECTORY/$NAME rm conf -Rf rm hooks -Rf ln -s ../hooks ln -s ../conf
echo "repository creato" else echo "Si e' verificato un errore durante la procedura di creazione del repository" fi else echo "Attenzione! il repository specificato gia' esiste" fi
else echo "Attenzione! la directory $DIRECTORY non esiiste" fi
Modificare la directory /repositories/ presente nel file (in grassetto) con quella che si utilizza (e che contirne le duedirectory conf ed hook guida) Rendere eseguibile il file :
chmod +x /usr/bin/./createRepository.sh
Ora è possibile eseguire il file
/usr/bin/./createRepository.sh
|