#!/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"; $ctrl = $ctrln->new; $ctrl->config(\%cfg); $retval = $ctrl->main; exit ($retval); } &init_conf (@ARGV); &init_mods (); &start_control (); exit (0);