[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] gforge/cronjobs/cvs-cron cvs.php, 1.5, 1.6 cvscreate.sh
From: |
gsmet |
Subject: |
[Gforge-commits] gforge/cronjobs/cvs-cron cvs.php, 1.5, 1.6 cvscreate.sh, 1.3, 1.4 |
Date: |
Tue, 13 Apr 2004 15:28:35 -0500 |
Update of /cvsroot/gforge/gforge/cronjobs/cvs-cron
In directory db.perdue.net:/tmp/cvs-serv8882/cronjobs/cvs-cron
Modified Files:
cvs.php cvscreate.sh
Log Message:
* anonymous enabling switch now respected
* removed loginfo chgrp by using g+s right
Index: cvs.php
===================================================================
RCS file: /cvsroot/gforge/gforge/cronjobs/cvs-cron/cvs.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- cvs.php 1 Dec 2003 04:03:41 -0000 1.5
+++ cvs.php 13 Apr 2004 20:28:33 -0000 1.6
@@ -24,27 +24,49 @@
}
}
+function writeFile($filePath, $content) {
+ $file = fopen($filePath, 'a');
+ flock($file, LOCK_EX);
+ ftruncate($file, 0);
+ rewind($file);
+ if(!empty($content)) {
+ fwrite($file, $content);
+ }
+ flock($file, LOCK_UN);
+ fclose($file);
+}
+
function addProjectRepositories() {
global $maincvsroot;
- $res = db_query("select group_id,unix_group_name from groups where
status='A' AND group_id NOT IN (2,3,4)");
+ $res = db_query("select
group_id,unix_group_name,enable_anoncvs,enable_pserver from groups where
status='A' AND group_id NOT IN (2,3,4)");
for($i = 0; $i < db_numrows($res); $i++) {
/*
Simply call cvscreate.sh
*/
- if
(is_dir("$maincvsroot".db_result($res,$i,'unix_group_name'))) {
-
- //already exists
-
- } elseif
(is_file("$maincvsroot".db_result($res,$i,'unix_group_name'))) {
-
- $err .=
"$maincvsroot".db_result($res,$i,'unix_group_name')." Already Exists As A File";
-
+ $repositoryPath =
$maincvsroot.db_result($res,$i,'unix_group_name');
+ if (is_dir($repositoryPath)) {
+ $writersContent = '';
+ $readersContent = '';
+ $passwdContent = '';
+ if(db_result($res,$i,'enable_anoncvs')) {
+ $repositoryMode = 2775;
+ if (db_result($res,$i,'enable_pserver')) {
+ $readersContent =
'anonymous::anonymous';
+ $passwdContent =
'anonymous:\$1\$0H\$2/LSjjwDfsSA0gaDYY5Df/:anonymous';
+ }
+ } else {
+ $repositoryMode = 2770;
+ }
+ chmod($repositoryPath, $repositoryMode);
+ writeFile($repositoryPath.'/CVSROOT/writers',
$writersContent);
+ writeFile($repositoryPath.'/CVSROOT/readers',
$readersContent);
+ writeFile($repositoryPath.'/CVSROOT/passwd',
$passwdContent);
+ } elseif (is_file($repositoryPath)) {
+ $err .= $repositoryPath.' already exists as a file';
} else {
-
- system("./cvscreate.sh
".db_result($res,$i,'unix_group_name')."
".(db_result($res,$i,'group_id')+50000));
-
+ system('./cvscreate.sh
'.db_result($res,$i,'unix_group_name').'
'.(db_result($res,$i,'group_id')+50000).'
'.db_result($res,$i,'enable_anoncvs').' '.db_result($res,$i,'enable_pserver'));
}
}
}
Index: cvscreate.sh
===================================================================
RCS file: /cvsroot/gforge/gforge/cronjobs/cvs-cron/cvscreate.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cvscreate.sh 25 Apr 2003 17:09:50 -0000 1.3
+++ cvscreate.sh 13 Apr 2004 20:28:33 -0000 1.4
@@ -1,55 +1,63 @@
#!/bin/sh
echo ""
echo "CVS Repository Tool"
-echo "(c)1999 SourceForge Development Team"
+echo "Portions (c)1999 SourceForge Development Team"
+echo "The rest (c)2004 Guillaume Smet"
echo "Released under the GPL, 1999"
echo ""
# if no arguments, print out help screen
-if test $# -lt 2; then
+if test $# -lt 4; then
echo "usage:"
- echo " cvscreate.sh [repositoryname] [groupid]"
+ echo " cvscreate.sh [repositoryname] [groupid] [isanonymousenabled]
[ispserverenabled]"
echo ""
exit 1
fi
-# make sure this repository doesn't already exist
-if [ -d /cvsroot/$1 ] ; then
- echo "$1 already exists."
- echo ""
- exit 1
-fi
-
-# first create the repository
-mkdir /cvsroot/$1
-cvs -d/cvsroot/$1 init
-
-# make it group writable
-chmod 775 /cvsroot/$1
-
-# import default directory, with default cvs.txt
-#mkdir $1
-#cp cvs.txt $1
-#cd $1
-#cvs -d/cvsroot/$1 import -m "SourceForge CVStool creation" $1 SourceForge
start
-#rm cvs.txt
-#cd ..
-#rmdir $1
+repositoryname=$1
+repositorypath=/cvsroot/$1
+groupid=$2
+isanonymousenabled=$3
+ispserverenabled=$4
-# turn off pserver writers, on anonymous readers
-echo "" > /cvsroot/$1/CVSROOT/writers
-echo "anonymous::anonymous" > /cvsroot/$1/CVSROOT/readers
-echo "anonymous:\$1\$0H\$2/LSjjwDfsSA0gaDYY5Df/:anonymous" >
/cvsroot/$1/CVSROOT/passwd
+function setPserverAccess() {
+ writers=""
+ readers=""
+ passwd=""
+ if [[ $isanonymousenabled -eq 1 && $ispserverenabled -eq 1 ]] ; then
+ readers="anonymous::anonymous"
+ passwd="anonymous:\$1\$0H\$2/LSjjwDfsSA0gaDYY5Df/:anonymous"
+ fi
+ echo $writers > $repositorypath/CVSROOT/writers
+ echo $readers > $repositorypath/CVSROOT/readers
+ echo $passwd > $repositorypath/CVSROOT/passwd
+}
-# setup loginfo to make group ownership every commit
-echo "ALL chgrp -R $1 /cvsroot/$1" > /cvsroot/$1/CVSROOT/loginfo
-echo "" > /cvsroot/$1/CVSROOT/val-tags
-chmod 664 /cvsroot/$1/CVSROOT/val-tags
+function setRepositoryAccess() {
+ if [ $isanonymousenabled -eq 1 ] ; then
+ # make the repository user and group writable and world readable
+ chmod 2775 $repositorypath
+ else
+ # make the repository user and group writable but not
accessible to other users
+ chmod 2770 $repositorypath
+ fi
+}
-# set group ownership, anonymous group user
-chown -R nobody:$2 /cvsroot/$1
-#cat /etc/passwd | grep -v anoncvs_$1 > newpasswd
-#cp newpasswd /etc/passwd
-#rm -f newpasswd
-#/usr/sbin/adduser -M -g $2 -d/cvsroot/$1 -s /bin/false -n anoncvs_$1
+function createRepository() {
+ mkdir $repositorypath
+ setRepositoryAccess
+ cvs -d$repositorypath init
+ setPserverAccess
+ echo "" > $repositorypath/CVSROOT/val-tags
+ chmod 664 $repositorypath/CVSROOT/val-tags
+ chown -R nobody:$groupid $repositorypath
+}
+if [ -d $repositorypath ] ; then
+ echo "$repositoryname already exists."
+ setRepositoryAccess
+ setPserverAccess
+ echo ""
+else
+ createRepository
+fi
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] gforge/cronjobs/cvs-cron cvs.php, 1.5, 1.6 cvscreate.sh, 1.3, 1.4,
gsmet <=