Author: pebender
Date: Wed May 6 08:31:02 2009
New Revision: 4718
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/MM_DHCP.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/dhcp.pm
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_firmware_wait
Log:
- Added an init state directory (/var/cache/minimyth/init/state) for
conveying the state of init between running programs.
- Changed init/dhcp.pm and init/conf/MM_DHCP so that the use the init
state directoy.
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 May 6 08:31:02 2009
@@ -19,10 +19,12 @@
my $dir = Cwd::abs_path(File::Basename::dirname(__FILE__));
# This is a hack for testing that should never get invoked during
normal boot.
- unlink('/etc/conf.d/dhcp.override') if
(-e '/etc/conf.d/dhcp.override');
- unlink('/etc/conf.d/minimyth') if
(-e '/etc/conf.d/minimyth');
- File::Path::rmtree('/var/cache/minimyth/init/conf') if
(-d '/var/cache/minimyth/init/conf');
- File::Path::rmtree('/var/cache/minimyth/detect') if
(-d '/var/cache/minimyth/detect');
+ File::Path::rmtree('/var/cache/minimyth/init/state/conf') if
(-e '/var/cache/minimyth/init/state/conf')
+ unlink('/etc/conf.d/dhcp.override') if
(-e '/etc/conf.d/dhcp.override');
+ unlink('/etc/conf.d/minimyth') if
(-e '/etc/conf.d/minimyth');
+
+ # Create conf state directory.
+ File::Path::mkpath('/var/cache/minimyth/init/state/conf', { mode =>
0755 })
# Read core and dhcp configuration files, which are included
in '/etc/conf'.
$minimyth->var_clear();
@@ -148,6 +150,8 @@
# Fetch firmware files.
$self->_run($minimyth, 'MM_FIRMWARE_FILE_LIST') || ($success = 0);
+
open(FILE, '>', '/var/cache/minimyth/init/state/conf/done-firmware_fetch'))
{ close(FILE); } else { $success = 0; }
+
# Enable configuration auto-detection udev rules for everything else.
if (opendir(DIR, '/lib/udev/rules.d'))
{
@@ -168,6 +172,8 @@
$self->_run($minimyth, 'MM_DHCP_.*') || ($success = 0);
$minimyth->var_save({ 'file' => '/etc/conf.d/dhcp.override', 'filter'
=> 'MM_DHCP_.*' });
+
open(FILE, '>', '/var/cache/minimyth/init/state/conf/done-dhcp_override_file'))
{ close(FILE); } else { $success = 0; }
+
# Start the DHCP client now that we have created the DHCP override
variables file.
$minimyth->package_require(q(init::dhcp));
if ($minimyth->package_member_require(q(init::dhcp), q(start)))
@@ -183,6 +189,8 @@
}
}
+ open(FILE, '>', '/var/cache/minimyth/init/state/conf/done-dhcp')) {
close(FILE); } else { $success = 0; }
+
$minimyth->message_output('info', "processing configuration file ...");
$minimyth->var_clear();
$minimyth->var_load({ 'file' => '/etc/minimyth.d/minimyth.conf' });
@@ -590,18 +598,6 @@
}
$var->{'complete'} = 1;
-
- # Create a file with the variable value.
- {
- my $var_file = q(/var/cache/minimyth/init/conf/) . $var_name;
- File::Path::mkpath(File::Basename::dirname("$var_file"), {mode =>
0755});
- unlink("$var_file");
- if (open(FILE, '>', "$var_file"))
- {
- print FILE $minimyth->var_get("$var_name");
- close(FILE);
- }
- }
return $success;
}
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_DHCP.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_DHCP.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_DHCP.pm
Wed May 6 08:31:02 2009
@@ -21,8 +21,7 @@
my $name = shift;
my $success = 1;
- # If the DCHP override file exists, then DHCP should be completely
configured.
- if (-e '/etc/conf.d/dhcp.override')
+ if (-e '/var/cache/minimyth/init/state/conf/done-dhcp')
{
my $hostname = $minimyth->hostname();
if (! $hostname)
@@ -45,8 +44,7 @@
my $name = shift;
my $success = 1;
- # If the DCHP override file exists, then DHCP should be completely
configured.
- if (-e '/etc/conf.d/dhcp.override')
+ if (-e '/var/cache/minimyth/init/state/conf/done-dhcp')
{
if (! -e '/etc/localtime')
{
@@ -65,8 +63,7 @@
my $name = shift;
my $success = 1;
- # If the DCHP override file exists, then DHCP should be completely
configured.
- if (-e '/etc/conf.d/dhcp.override')
+ if (-e '/var/cache/minimyth/init/state/conf/done-dhcp')
{
my $valid = 0;
if (open(FILE, '<', '/etc/resolv.conf'))
@@ -95,8 +92,7 @@
my $name = shift;
my $success = 1;
- # If the DCHP override file exists, then DHCP should be completely
configured.
- if (-e '/etc/conf.d/dhcp.override')
+ if (-e '/var/cache/minimyth/init/state/conf/done-dhcp')
{
my $valid = 0;
if (open(FILE, '<', '/etc/ntp.conf'))
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/dhcp.pm
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/dhcp.pm
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/dhcp.pm
Wed May 6 08:31:02 2009
@@ -8,10 +8,10 @@
use MiniMyth ();
-# If there is no DHCP override variables file (/etc/conf.d/dhcp.override)
then
-# this routine will cause the DHCP client to run once and quit. Whereas, if
-# there is a DHCP override variables file, then this routine will cause
the DHCP
-# client to run continuously.
+# If conf.pm indicates that the DHCP override file is valid (i.e. the file
+# '/var/cache/minimyth/init/state/conf/done_dhcp_override_file'), then this
+# routine will cause the DHCP client to run continuously. Otherwise, this
+# routine will cause the DHCP client to run once and quit.
sub start
{
my $self = shift;
@@ -75,7 +75,7 @@
}
# Decide whether or not to run once.
- if (! -e '/etc/conf.d/dhcp.override')
+ if (! -e '/var/cache/init/state/conf/done-dhcp_override_file')
{
$command = $command . ' ' . qq(-q);
}
Modified:
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_firmware_wait
==============================================================================
---
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_firmware_wait
(original)
+++
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_firmware_wait
Wed May 6 08:31:02 2009
@@ -1,6 +1,6 @@
#!/bin/sh
-if /usr/bin/test ! -e
/var/cache/minimyth/init/conf/MM_FIRMWARE_FILE_LIST ; then
+if /usr/bin/test ! -e
/var/cache/minimyth/init/state/conf/done-firmware_fetch ; then
if /sbin/modprobe --show-depends $MODALIAS | /bin/grep
-q '/firmware_class.ko' 2> /dev/null ; then
exit 0
fi
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---