Author: pebender
Date: Wed Jan  7 14:16:17 2009
New Revision: 4182

Modified:
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/rc.pl

Log:
- Changed perl init scripts so that they trap 'die' in several places  
rather than dying.



Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf.pm
        
Wed Jan  7 14:16:17 2009
@@ -109,7 +109,14 @@
          if ($minimyth->package_member_exists(q(init::minimyth), q(start)))
          {
              $minimyth->message_output('info', "running configuration  
package ...");
-            init::minimyth->start($minimyth);
+            eval
+            {
+                init::minimyth->start($minimyth);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+            }
          }
      }

@@ -136,7 +143,14 @@
      $minimyth->package_require(q(init::dhcp));
      if ($minimyth->package_member_require(q(init::dhcp), q(start)))
      {
-        init::dhcp->start($minimyth);
+        eval
+        {
+            init::dhcp->start($minimyth);
+        };
+        if ($@)
+        {
+            $minimyth->message_output('err', qq($@));
+        }
      }

      $minimyth->message_output('info', "processing configuration file ...");
@@ -179,7 +193,14 @@
          if (exists(&init::minimyth::stop))
          {
              $minimyth->message_output('info', "running configuration  
package ...");
-            init::minimyth->stop($minimyth);
+            eval
+            {
+                init::minimyth->stop($minimyth);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+            }
          }
      }

@@ -208,7 +229,16 @@

              if ($minimyth->package_member_require($group, q(var_list)))
              {
-                my $group_var_list = $group->var_list();
+                my $group_var_list = undef;
+                eval
+                {
+                    $group_var_list = $group->var_list();
+                };
+                if ($@)
+                {
+                    $minimyth->message_output('err', qq($@));
+                    return 0;
+                }
                  foreach (grep( /^$filter$/, keys %{$group_var_list}))
                  {
                      $var_list{$_} = $group_var_list->{$_};
@@ -268,7 +298,15 @@
          # Convert function pointer to its return value.
          if (ref($prerequisite) eq 'CODE')
          {
-            $prerequisite = &{$prerequisite}($minimyth, $var_name);
+            eval
+            {
+                $prerequisite = &{$prerequisite}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Convert non-array pointer (i.e. scaler) to an array pointer.
          if (ref($prerequisite) ne 'ARRAY')
@@ -306,7 +344,15 @@
              # Convert function pointer to its return value.
              if (ref($value_default) eq 'CODE')
              {
-                $value_default = &{$value_default}($minimyth, $var_name);
+                eval
+                {
+                    $value_default = &{$value_default}($minimyth,  
$var_name);
+                };
+                if ($@)
+                {
+                    $minimyth->message_output('err', qq($@));
+                    return 0;
+                }
              }
              # Set variable to its default value.
              $minimyth->var_set($var_name, $value_default);
@@ -319,7 +365,15 @@
          # Convert function pointer to its return value.
          if (ref($value_valid) eq 'CODE')
          {
-            $value_valid = &{$value_valid}($minimyth, $var_name);
+            eval
+            {
+                $value_valid = &{$value_valid}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Convert non-array pointer (i.e. scaler) to an array pointer.
          if (ref($value_valid) ne 'ARRAY')
@@ -349,7 +403,15 @@
                      # Convert function pointer to its return value.
                      if (ref($value_default) eq 'CODE')
                      {
-                        $value_default = &{$value_default}($minimyth,  
$var_name);
+                        eval
+                        {
+                            $value_default = &{$value_default}($minimyth,  
$var_name);
+                        };
+                        if ($@)
+                        {
+                            $minimyth->message_output('err', qq($@));
+                            return 0;
+                        }
                      }
                      # Set variable to its default value.
                      $minimyth->var_set($var_name, $value_default);
@@ -364,7 +426,15 @@
          # Convert function pointer to its return value.
          if (ref($value_obsolete) eq 'CODE')
          {
-            $value_obsolete = &{$value_obsolete}($minimyth, $var_name);
+            eval
+            {
+                $value_obsolete = &{$value_obsolete}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Convert non-array pointer (i.e. scaler) to an array pointer.
          if (ref($value_obsolete) ne 'ARRAY')
@@ -392,7 +462,15 @@
          # Convert function pointer to its return value.
          if (ref($value_auto) eq 'CODE')
          {
-            $value_auto = &{$value_auto}($minimyth, $var_name);
+            eval
+            {
+                $value_auto = &{$value_auto}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Set variable to its auto value.
          $minimyth->var_set($var_name, $value_auto);
@@ -404,7 +482,15 @@
          # Convert function pointer to its return value.
          if (ref($value_none) eq 'CODE')
          {
-            $value_none = &{$value_none}($minimyth, $var_name);
+            eval
+            {
+                $value_none = &{$value_none}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Set variable to its none value.
          $minimyth->var_set($var_name, $value_none);
@@ -416,11 +502,27 @@
          # Convert function pointer to its return value.
          if (ref($value_file) eq 'CODE')
          {
-            $value_file = &{$value_file}($minimyth, $var_name);
+            eval
+            {
+                $value_file = &{$value_file}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          if (ref($file) eq 'CODE')
          {
-            $file = &{$file}($minimyth, $var_name);
+            eval
+            {
+                $file = &{$file}($minimyth, $var_name);
+            };
+            if ($@)
+            {
+                $minimyth->message_output('err', qq($@));
+                return 0;
+            }
          }
          # Convert non-array pointer (i.e. hash pointer) to an array  
pointer.
          if (ref($file) ne 'ARRAY')

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/rc.pl
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/rc.pl      
 
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/rc.pl      
 
Wed Jan  7 14:16:17 2009
@@ -76,16 +76,34 @@
          {
              when (/^start$/)
              {
-                if (! $package->start($minimyth))
+                eval
                  {
+                    if (! $package->start($minimyth))
+                    {
+                        $fail = 1;
+                        last;
+                    }
+                };
+                if ($@)
+                {
+                    $minimyth->message_output('err', qq($@));
                      $fail = 1;
                      last;
                  }
              }
              when (/^stop$/)
              {
-                if (! $package->stop($minimyth))
+                eval
+                {
+                    if (! $package->stop($minimyth))
+                    {
+                        $fail = 1;
+                        last;
+                    }
+                };
+                if ($@)
                  {
+                    $minimyth->message_output('err', qq($@));
                      $fail = 1;
                      last;
                  }

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to