savannah-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-cvs] administration/infra/savane/bin sv_groups


From: Elfyn McBratney
Subject: [Savannah-cvs] administration/infra/savane/bin sv_groups
Date: Mon, 13 Sep 2004 21:58:02 -0400

CVSROOT:        /cvsroot/administration
Module name:    administration
Branch:         
Changes by:     Elfyn McBratney <address@hidden>        04/09/14 01:52:51

Modified files:
        infra/savane/bin: sv_groups 

Log message:
        add error handling code

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/administration/administration/infra/savane/bin/sv_groups.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: administration/infra/savane/bin/sv_groups
diff -u administration/infra/savane/bin/sv_groups:1.5 
administration/infra/savane/bin/sv_groups:1.6
--- administration/infra/savane/bin/sv_groups:1.5       Tue Sep 14 01:37:37 2004
+++ administration/infra/savane/bin/sv_groups   Tue Sep 14 01:52:51 2004
@@ -2,7 +2,7 @@
 # This file is part of the Savane project
 # <http://gna.org/projects/savane/>
 #
-# $Id: sv_groups,v 1.5 2004/09/14 01:37:37 beu Exp $
+# $Id: sv_groups,v 1.6 2004/09/14 01:52:51 beu Exp $
 #
 #  Copyright 2001 (c) Loic Dachary <address@hidden> (sv_cvs.pl)
 #            2003 (c) Mathieu Roy <address@hidden> 
@@ -250,7 +250,6 @@
 print LOG strftime "[$script] %c - system infos grabbed\n", localtime;
 print LOG strftime "[$script] %c - comparison done\n", localtime;
 
-
 #######################################################################
 ##
 ## Finally, update the system
@@ -259,10 +258,12 @@
 
 # Make sure that the group svusers and anoncvs exists
 # sv_users and sv_groups would broke without these groups
+
 for ("svusers", "anoncvs") {
     unless (getgrnam($_)) {   
        unless ($debug || $no_etc) {
-           system(('/usr/sbin/groupadd', '-g', $etc_group_maxid, $_));
+           my @groupadd_args = ('/usr/sbin/groupadd', '-g', $etc_group_maxid, 
$_);
+           system(@groupadd_args) == 0 or die "@groupadd_args failed";
        }
        print LOG strftime "[$script] %c ---- groupadd -g $etc_group_maxid $_ 
(required by the savane backend)\n", localtime;
        $etc_group_maxid++; 
@@ -272,6 +273,8 @@
 # Add groups only in database, missing on the system
 
 foreach my $group (@only_in_db){
+
+    my @groupadd_args;
     
     my ($group_id, $name, $type, $is_public, $use_homepage,
        $use_cvs, $use_download) = @{$db_groups{$group}};
@@ -281,11 +284,13 @@
     unless ($debug || $no_etc) {
        
        # Actually add the groups
-       system(('/usr/sbin/groupadd', '-g', $etc_group_maxid, $name));
+       @groupadd_args = ('/usr/sbin/groupadd', '-g', $etc_group_maxid, $name);
+       system(@groupadd_args) == 0 or die "@groupadd_args failed";
 
        unless ($one_group) {
            $etc_group_maxid++;
-           system(('/usr/sbin/groupadd', '-g', $etc_group_maxid, "web$name"));
+           @groupadd_args = ('/usr/sbin/groupadd', '-g', $etc_group_maxid, 
"web$name");
+           system(@groupadd_args) == 0 or die "@groupadd_args failed";
        }
        
        # We do not at that moment create the directories, we just relying
@@ -386,6 +391,7 @@
 sub create_cvs {
     my ($name, $is_public, $group_type) = @_;
     my $chroot = "/savannah/cvsroot/$name";
+    my (@cp_args, @tar_args, @mknod_args, @chgrp_args);
 
     return 1 if -e $chroot;
 
@@ -406,20 +412,24 @@
     mkdir("$chroot/webcvs/$name/$name");
 
     # install cvs and extract the seed
-    system(('/bin/cp', '/savannah/cvs-seed/cvs', "$chroot/bin"));
+    @cp_args = ('/bin/cp', '/savannah/cvs-seed/cvs', "$chroot/bin");
+    system(@cp_args) == 0 or die "@cp_args failed";
 
     # cvs seed:
     chdir("$chroot/cvsroot/$name");
-    system(('/bin/tar', 'xfzp', '/savannah/cvs-seed/CVSROOT.tar.gz'));
+    @tar_args = ('/bin/tar', 'xfzp', '/savannah/cvs-seed/CVSROOT.tar.gz');
+    system(@tar_args) == 0 or die "@tar_args failed";
     chdir('/');
 
     # webcvs seed:
     chdir ("$chroot/webcvs/$name");
-    system(('/bin/tar', 'xfzp', '/savannah/cvs-seed/CVSROOT.tar.gz'));
+    @tar_args = ('/bin/tar', 'xfzp', '/savannah/cvs-seed/CVSROOT.tar.gz');
+    system(@tar_args) == 0 or die "@tar_args failed";
     chdir ('/');
 
     # mknod $chroot/dev/null
-    system(('/bin/mknod', "$chroot/dev/null", 'c', '1', '3'));
+    @mknod_args = ('/bin/mknod', "$chroot/dev/null", 'c', '1', '3');
+    system(@mknod_args) == 0 or die "@tar_args failed";
 
     # fix up permissions
     chmod(02777, "$chroot/cvs-locks");
@@ -435,12 +445,18 @@
     chmod(02775, "$chroot/webcvs/$name/$name");
 
     # fix up ownership
-    system(('/bin/chgrp', $name, "$chroot/cvsroot/$name/$name"));
-    system(('/bin/chgrp', $name, "$chroot/cvsroot/$name/CVSROOT/history"));
-    system(('/bin/chgrp', $name, "$chroot/cvsroot/$name/CVSROOT/val-tags"));
-    system(('/bin/chgrp', "web$name", "$chroot/webcvs/$name/CVSROOT/history"));
-    system(('/bin/chgrp', "web$name", 
"$chroot/webcvs/$name/CVSROOT/val-tags"));
-    system(('/bin/chgrp', "web$name", "$chroot/webcvs/$name/$name"));
+    @chgrp_args = ('/bin/chgrp', $name, "$chroot/cvsroot/$name/$name");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
+    @chgrp_args = ('/bin/chgrp', $name, 
"$chroot/cvsroot/$name/CVSROOT/history");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
+    @chgrp_args = ('/bin/chgrp', $name, 
"$chroot/cvsroot/$name/CVSROOT/val-tags");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
+    @chgrp_args = ('/bin/chgrp', "web$name", 
"$chroot/webcvs/$name/CVSROOT/history");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
+    @chgrp_args = ('/bin/chgrp', "web$name", 
"$chroot/webcvs/$name/CVSROOT/val-tags");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
+    @chgrp_args = ('/bin/chgrp', "web$name", "$chroot/webcvs/$name/$name");
+    system(@chgrp_args) == 0 or die "@chgrp_args failed";
 
     # perform an initial checkout so that updates happen
     #create_website ($name, $group_type)  if ($is_public);
@@ -450,6 +466,7 @@
 
 sub create_download {
     my ($name, $is_public) = @_;
+    my @chown_args;
 
     return 1 if -e "/savannah/download/$name";
     return 1 unless $is_public;
@@ -470,10 +487,14 @@
     chmod(00770, "/var/tmp/ftp-out/$name");
 
     # fix ownership
-    system(('/bin/chown', "gatekpr.gatekpr", "/savannah/download/$name"));
-    system(('/bin/chown', 'upload.gatekpr', 
"/home/upload/incoming/savannah/$name"));
-    system(('/bin/chown', 'gatekpr.gatekpr', "/var/tmp/ftp-in/$name"));
-    system(('/bin/chown', 'gatekpr.gatekpr', "/var/tmp/ftp-out/$name"));
+    @chown_args = ('/bin/chown', "gatekpr.gatekpr", 
"/savannah/download/$name");
+    system(@chown_args) == 0 or die "@chown_args failed";
+    @chown_args = ('/bin/chown', 'upload.gatekpr', 
"/home/upload/incoming/savannah/$name");
+    system(@chown_args) == 0 or die "@chown_args failed";
+    @chown_args = ('/bin/chown', 'gatekpr.gatekpr', "/var/tmp/ftp-in/$name");
+    system(@chown_args) == 0 or die "@chown_args failed";
+    @chown_args = ('/bin/chown', 'gatekpr.gatekpr', "/var/tmp/ftp-out/$name");
+    system(@chown_args) == 0 or die "@chown_args failed";
 
     print LOG strftime "[$script] %c ---- created download are for $name\n", 
localtime;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]