Je me décide à poster une méthode "simple" pour mettre en place des repositories sur un serveur cvsd.
En effet, celà fait depuis un bout de temps que je mets en place ses derniers en suivant pas-à-pas le HOWTO disponible sur http://fr.gentoo-wiki.com mais malheureusement ce dernier est la traduction d'un HOWTO qui est erroné à la base.
D'autant plus qu'une certaine confusion règne entre cvsd & cvs et que... bref, on s'y perd (là ce n'est qu'un avis personel
Toujours est-il que je me suis dit pourquoi ne pas prendre mes petits doigts et tapper en vite fait un petit script qui pour un repository nommé foo fait les choses suivantes :
- creation d'un repository dont le chemin est /foo
- ajout d'un user anonymous ayant des droits de lecture
- ajout d'un user foo ayant des droits de lecture/écriture
Voici le script : cvs.sh
Code: Select all
#!/bin/sh
if [ "$1" == "" ]
then
echo "Usage: cvs.sh <repository name>"
exit
fi
REPOSITORY_NAME=$1
FILE_CVSD_CONF=/etc/cvsd/cvsd.conf
FILE_CVSD_INITD=/etc/init.d/cvsd
ABSDIR_CVSD_ROOTJAIL=/var/lib/cvsd
ABSDIR_REPOSITORY_JAIL=$ABSDIR_CVSD_ROOTJAIL/$REPOSITORY_NAME
CMD_CHOWN="sudo chown"
CMD_CHMOD="sudo chmod"
CMD_MKDIR="sudo mkdir"
CMD_TOUCH="sudo touch"
CMD_CVS=`whereis cvs | awk '{ print "sudo "$2 }'`
CMD_CVSD_BUILDROOT=`whereis cvsd-buildroot | awk '{ print "sudo "$2 }'`
CMD_CVSD_PASSWD=`whereis cvsd-passwd | awk '{ print "sudo "$2 }'`
CMD_CVSD_SERVER="sudo $FILE_CVSD_INITD"
if [ ! -d $ABSDIR_CVSD_ROOTJAIL ]
then
echo "Creation du répertoire $ABSDIR_CVSD_ROOTJAIL"
$CMD_MKDIR -p $ABSDIR_CVSD_ROOTJAIL/var/lock/cvs
echo "Initialisation du RootJail..."
$CMD_CVSD_BUILDROOT $ABSDIR_CVSD_ROOTJAIL
fi
$CMD_MKDIR -p $ABSDIR_REPOSITORY_JAIL
$CMD_CVS -d $ABSDIR_REPOSITORY_JAIL init
$CMD_CVSD_PASSWD $ABSDIR_REPOSITORY_JAIL +anonymous
$CMD_CVSD_PASSWD $ABSDIR_REPOSITORY_JAIL +$REPOSITORY_NAME
$CMD_TOUCH $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers
$CMD_CHMOD 666 $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers
echo "$REPOSITORY_NAME" > $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers
$CMD_CHMOD 644 $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers
$CMD_CHMOD 666 $FILE_CVSD_CONF
grep "^Repos /$REPOSITORY_NAME" < $FILE_CVSD_CONF 1> /dev/null || echo "Repos /$REPOSITORY_NAME" >> $FILE_CVSD_CONF
$CMD_CHMOD 644 $FILE_CVSD_CONF
$CMD_CHOWN -R cvsd:cvsd $ABSDIR_CVSD_ROOTJAIL
$CMD_CVSD_SERVER restart
Code: Select all
sh cvs.sh fooSi vous voulez revenir dans la configuration initiale post-emerge, tappez en mode root à l'ancienne (et à vos dépens
Code: Select all
rm -Rf /var/lib/cvsd/*Voilà
P.S.
Même si j'arrive à aller au bout de mes scripts bash, je doit avouer qu'il y a mieux comme code
P.P.S. [EDIT]
J'ai fait une grosse mise-à-jour du script car je n'avais pas remaqué qu'un problème de droit en écriture arrivait lors du commit
Pour la mise en place du serveur cvsd, c'est toujours aussi simple [root-mode on] :
Code: Select all
emerge dev-util/cvsd



