#!/usr/bin/perl require Iotta::Ctrl; use strict; my (%cfg); #sub init_mods { # my ($mods, $pre, $fname); # # $fname = $cfg{"init/mods"}; # $fname = "iotta.mods" unless $fname; # # open (INPUT, $fname) || return 1; # while () { $mods.=$_; } # close (INPUT); # # for (split (/\n/, $mods)) { # my $b = $_; # s/::/\//g; # print STDERR "loading $b ($_.pm)\n"; # require "$_.pm" unless /^[ \t]*#.*$/; # } #} sub init_conf { my ($conf, $key, $val, $fname); $fname = shift; $fname = "iotta.cf" unless $fname; print STDERR "loading configuration file $fname...\n"; open (CF, $fname) || die "couldn't open configuration file $fname\n"; while () { $conf .= $_; }; close CF; $conf =~ s/^#.*//; for (split (/\n/, $conf)) { ($key,$val) = split (/=/, $_); $cfg{$key}=$val; } } sub start_control { my ($ctrl, $ctrln, $retval); $ctrln = $cfg{"ctrl"}; $ctrln = "Iotta::Ctrl" if (!$ctrln); print STDERR "starting control module: $ctrln...\n"; my $req = $ctrln; $req =~ s/::/\//g; require "$req.pm"; $ctrl = $ctrln->new; $ctrl->config(\%cfg); $retval = $ctrl->main; exit ($retval); } &init_conf (@ARGV); #&init_mods (); &start_control (); exit (0);