[Initscripts-ng-commits] r478 - in /trunk/src/insserv/debian: changelog check-initd-order

pere at users.alioth.debian.org pere at users.alioth.debian.org
Tue Jan 8 15:24:48 UTC 2008


Author: pere
Date: Tue Jan  8 15:24:48 2008
New Revision: 478

URL: http://svn.debian.org/wsvn/initscripts-ng/?sc=1&rev=478
Log:
Implement new check-initd-order option -c to be used with -g to
generate a combined graph for boot and shutdown dependencies.

Modified:
    trunk/src/insserv/debian/changelog
    trunk/src/insserv/debian/check-initd-order

Modified: trunk/src/insserv/debian/changelog
URL: http://svn.debian.org/wsvn/initscripts-ng/trunk/src/insserv/debian/changelog?rev=478&op=diff
==============================================================================
--- trunk/src/insserv/debian/changelog (original)
+++ trunk/src/insserv/debian/changelog Tue Jan  8 15:24:48 2008
@@ -1,3 +1,10 @@
+insserv (1.10.0-1) UNRELEASED; urgency=low
+
+  * Implement new check-initd-order option -c to be used with -g to
+    generate a combined graph for boot and shutdown dependencies.
+
+ -- Petter Reinholdtsen <pere at debian.org>  Mon,  8 Jan 2008 16:37:53 +0100
+
 insserv (1.10.0-1) unstable; urgency=low
 
   * New upstream version released 2007-10-10.

Modified: trunk/src/insserv/debian/check-initd-order
URL: http://svn.debian.org/wsvn/initscripts-ng/trunk/src/insserv/debian/check-initd-order?rev=478&op=diff
==============================================================================
--- trunk/src/insserv/debian/check-initd-order (original)
+++ trunk/src/insserv/debian/check-initd-order Tue Jan  8 15:24:48 2008
@@ -63,7 +63,7 @@
 
 while($#ARGV >= 0 && ($_ = $ARGV[0]) =~ /^-/) {
         shift @ARGV;
-        if (/^-([dgko])$/) { $opts{$1}++; next }
+        if (/^-([cdgko])$/) { $opts{$1}++; next }
         if (/^-h|--help$/) { &usage; }
         &usage("unknown option");
 }
@@ -81,7 +81,12 @@
 sub usage {
     print STDERR "check-initd-order: error: @_\n" if ($#_ >= 0);
     print STDERR <<EOF;
-usage: check-initd-order [-dgko]
+usage: check-initd-order [-cdgko]
+  -d enable debug output
+  -o do not load override files
+  -k use shutdown (reboot) sequence instead of boot sequence
+  -g generate graph
+  -c use combined boot and shutdown sequence (only for graphs)
 EOF
     exit 1;
 }
@@ -95,7 +100,8 @@
 }
 
 sub graph_addnode {
-    my %lsbinfo = @_;
+    my ($isstopseq, $lsbinforef) = @_;
+    my %lsbinfo = %{$lsbinforef};
 
     unless ($lsbinfo{'provides'}) {
         print STDERR "error: File ". $lsbinfo{'file'} . " is missing the provides header\n";
@@ -108,8 +114,9 @@
     my @provides = split(/\s+/, $lsbinfo{'provides'});
     for my $name (@provides) {
         if (exists $sysmap{$name}) {
-            graph_addnode('provides'      => $sysmap{$name},
-                          "required-$key" => $name);
+            graph_addnode($isstopseq,
+                          {'provides'      => $sysmap{$name},
+                          "required-$key" => $name});
         }
     }
 
@@ -117,10 +124,12 @@
         my @providescopy = @provides;
         my $lastprovide = shift @providescopy;
         for my $provide (@providescopy) {
-            graph_addnode('provides'      => $lastprovide,
-                          "required-$key" => $provide);
-            graph_addnode('provides'      => $provide,
-                          "required-$key" => $lastprovide);
+            graph_addnode($isstopseq,
+                          {'provides'      => $lastprovide,
+                           "required-$key" => $provide});
+            graph_addnode($isstopseq,
+                          {'provides'      => $provide,
+                           "required-$key" => $lastprovide});
         }
     }
 
@@ -150,6 +159,28 @@
     }
 }
 
+sub graph_generate_mode {
+    my ($isstopseq) = @_;
+    my @dirs = $isstopseq ? $rcmap{6} : ($rcmap{S}, $rcmap{2});
+    for my $rcdir (@dirs) {
+        chdir "$rcbase/$rcdir/.";
+        my @scripts = $isstopseq ? <K*> : <S*>;
+        for my $script (@scripts) {
+            my $lsbinforef = load_lsb_tags("$rcbase/$rcdir/$script",
+                                           $useoverrides);
+
+            unless (defined $lsbinforef) {
+                print STDERR "warning: LSB header missing in $rcbase/$rcdir/$script\n";
+                $script =~ s/^[SK]\d{2}//;
+                $lsbinforef = {'provides'       => $script,
+                               'required-start' => '$remote_fs $syslog',
+                               'required-stop'  => '$remote_fs $syslog'};
+            }
+            graph_addnode($isstopseq, $lsbinforef);
+        }
+    }
+}
+
 sub graph_generate {
     print "# Generating graph\n";
     print <<EOF;
@@ -157,24 +188,11 @@
 rankdir=LR;
 concentrate=true;
 EOF
-    my @dirs = $opts{'k'} ? $rcmap{6} : ($rcmap{S}, $rcmap{2});
-    for my $rcdir (@dirs) {
-        chdir "$rcbase/$rcdir/.";
-        my @scripts = $opts{'k'} ? <K*> : <S*>;
-        for my $script (@scripts) {
-            my $lsbinforef = load_lsb_tags("$rcbase/$rcdir/$script",
-                                           $useoverrides);
-
-            unless (defined $lsbinforef) {
-                print STDERR "warning: LSB header missing in $rcbase/$rcdir/$script\n";
-                $script =~ s/^[SK]\d{2}//;
-                $lsbinforef = {'provides'       => $script,
-                               'required-start' => '$remote_fs $syslog',
-                               'required-stop'  => '$remote_fs $syslog'};
-            }
-            my %lsbinfo = %{$lsbinforef};
-            graph_addnode %lsbinfo;
-        }
+    if ($opts{'c'}) {
+        graph_generate_mode();
+        graph_generate_mode(1);
+    } else {
+        graph_generate_mode($opts{'k'});
     }
     print <<EOF;
 }




More information about the Initscripts-ng-commits mailing list