summaryrefslogtreecommitdiff
path: root/fml/libexec
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-20 04:22:34 +0000
committerfukachan <fukachan>2001-01-20 04:22:34 +0000
commit3e7bfd1327972674fd8393be0be49d332f858d7f (patch)
tree93e1fe1106571dfa30d12c5bf48861cfbd1db516 /fml/libexec
parentc8b3129114b671750158a796dd1b149b8454815b (diff)
downloadfml8-3e7bfd1327972674fd8393be0be49d332f858d7f.tar.gz
fml8-3e7bfd1327972674fd8393be0be49d332f858d7f.tar.bz2
fml8-3e7bfd1327972674fd8393be0be49d332f858d7f.zip
clean up variable names, enable fmlwrapper -c main.cffml
Diffstat (limited to 'fml/libexec')
-rwxr-xr-xfml/libexec/fmlwrapper38
1 files changed, 25 insertions, 13 deletions
diff --git a/fml/libexec/fmlwrapper b/fml/libexec/fmlwrapper
index d1741eca..fa6e8251 100755
--- a/fml/libexec/fmlwrapper
+++ b/fml/libexec/fmlwrapper
@@ -21,6 +21,7 @@ if ($@) { print STDERR "Error: ", $@, "\n";}
exit 0;
+# Firstly we load Standalone.pm which has main.cf parser().
BEGIN {
use File::Basename;
unshift(@INC, dirname($0));
@@ -28,6 +29,13 @@ BEGIN {
}
+# Descriptions: top lebel bootstrap program
+# which load the required library and switch myself to it.
+# loading order:
+# libexec/fmlwrapper -> libexec/fml -> FML::Process::Something
+# Arguments: none
+# Side Effects: switch to the real process
+# Return Value: none
sub Bootstrap
{
# 1. main.cf exists and I can open it?
@@ -35,11 +43,6 @@ sub Bootstrap
my $fh = new FileHandle $MainCF;
defined($fh) || die("cannot find ${MainCF}");
- # 1.1 o.k. try to load main.cf
- my $config = Standalone::load_cf($MainCF);
- my $libexec_dir = $config->{ libexec_dir };
- my $default_config = $config->{ default_config };
-
# 2. pick up *.cf files to read and set them to @cf.
# We pass it to fml_loader.
# pass *.cf files to libexec/{distribute,command}
@@ -48,23 +51,33 @@ sub Bootstrap
# /etc/fml/domains/$DOMAIN/config.cf
# /var/spool/ml/elena/config.cf
# );
- my @cf = ($default_config);
- my %optargs = ();
+ my @cf = ();
+ my %options = ();
+ my $my_default_config = '';
for (@ARGV) {
if ($_ eq '--ctladdr') {
- $optargs{ ctladdr } = 1;
+ $options{ ctladdr } = 1;
+ }
+ elsif ($_ eq '-c') {
+ $my_default_config = shift @ARGV;
}
elsif (-d $_) {
push(@cf, "$_/config.cf") if -f "$_/config.cf";
}
elsif (-f $_) {
- push(@cf, "$_");
+ push(@cf, $_);
}
}
+ # 2.1 o.k. try to load main.cf
+ my $main_cf = Standalone::load_cf($MainCF);
+ my $libexec_dir = $main_cf->{ libexec_dir };
+ my $default_config = $my_default_config || $main_cf->{ default_config };
+ unshift(@cf, $default_config);
+
# 3. reset @INC
- unshift(@INC, $config->{ local_lib_dir });
- unshift(@INC, $config->{ lib_dir });
+ unshift(@INC, $main_cf->{ local_lib_dir }) if $main_cf->{ local_lib_dir };
+ unshift(@INC, $main_cf->{ lib_dir }) if $main_cf->{ lib_dir };
# 4. inspect my mode from $0
use File::Basename;
@@ -74,10 +87,9 @@ sub Bootstrap
require "$libexec_dir/fml";
ProcessSwitch(
{
- main_config => $config,
cf_list => \@cf,
myname => $myname,
- options => \%optargs,
+ options => \%options,
});
}