"symdump" => "DumpVars2.pl",
"exchange" => "Exchange.pl",
"factoids" => "Factoids.pl",
- "freshmeat" => "Freshmeat.pl",
"kernel" => "Kernel.pl",
"perlMath" => "Math.pl",
"news" => "News.pl",
"zippy" => "Zippy.pl",
"zsi" => "zsi.pl",
"botmail" => "botmail.pl",
+ "httpdtype" => "HTTPDtype.pl",
);
### THIS IS NOT LOADED ON RELOAD :(
my @myModulesLoadNow;
my $f;
# todo: use function to load module.
- if ($param{'DBType'} =~ /^mysql$/i) {
+ if ($param{'DBType'} =~ /^(mysql|SQLite|pgsql)$/i) {
eval "use DBI";
if ($@) {
- &ERROR("libdbd-mysql-perl is not installed!");
+ &ERROR("No support for DBI::" . $param{'DBType'} . ", exiting!");
exit 1;
}
- &status("Loading MySQL support.");
+ &status("Loading " . $param{'DBType'} . " support.");
$f = "$bot_src_dir/dbi.pl";
require $f;
$moduleAge{$f} = (stat $f)[9];
- &showProc(" (DBI::mysql)");
-
- } elsif ($param{'DBType'} =~ /^pgsql$/i) {
- eval "use DBI";
- if ($@) {
- &ERROR("libpgperl is not installed!");
- exit 1;
- }
- &status("Loading pgsql support.");
- $f = "$bot_src_dir/dbi.pl";
- require $f;
- $moduleAge{$f} = (stat $f)[9];
-
- &showProc(" (DBI::pgsql)");
-
- } elsif ($param{'DBType'} =~ /^sqlite$/i) {
- eval "use DBI";
- if ($@) {
- &ERROR("libdbd-sqlite-perl is not installed!");
- exit 1;
- }
- &status("Loading SQLite support.");
- $f = "$bot_src_dir/dbi.pl";
- require $f;
- $moduleAge{$f} = (stat $f)[9];
-
- &showProc(" (DBI::SQLite)");
-
- } elsif ($param{'DBType'} =~ /^dbm$/i) {
- &status("Loading dbm support.");
- $f = "$bot_src_dir/dbm.pl";
- require $f;
- $moduleAge{$f} = (stat $f)[9];
-
- &showProc(" (dbm.pl)");
-
+ &showProc(" (DBI::" . $param{'DBType'} . ")");
} else {
&WARN("DB support DISABLED.");
return;
&ERROR("require \"$mod\" => $@");
&shutdown();
exit 1;
- }
+ }
$moduleAge{$mod} = (stat $mod)[9];
&showProc(" ($_)") if (&IsParam("DEBUG"));
### rename to moduleReloadAll?
sub reloadAllModules {
+ my $retval = "";
+
&VERB("Module: reloading all.",2);
# obscure usage of map and regex :)
foreach (map { s/.*?\/?src/src/; $_ } keys %moduleAge) {
- &reloadModule($_);
+ $retval .= &reloadModule($_);
}
&VERB("Module: reloading done.",2);
+ return $retval;
}
### rename to modulesReload?
sub reloadModule {
my ($mod) = @_;
my $file = (grep /\/$mod/, keys %INC)[0];
+ my $retval = "";
# don't reload if it's not our module.
if ($mod =~ /::/ or $mod !~ /pl$/) {
&VERB("Not reloading $mod.",3);
- return;
+ return $retval;
}
if (!defined $file) {
&WARN("rM: Cannot reload $mod since it was not loaded anyway.");
- return;
+ return $retval;
}
if (! -f $file) {
&ERROR("rM: file '$file' does not exist?");
- return;
+ return $retval;
}
if (grep /$mod/, @myModulesReloadNot) {
&DEBUG("rM: should not reload $mod");
- return;
+ return $retval;
}
my $age = (stat $file)[9];
if (!exists $moduleAge{$file}) {
&DEBUG("Looks like $file was not loaded; fixing.");
} else {
- return if ($age == $moduleAge{$file});
+ return $retval if ($age == $moduleAge{$file});
if ($age < $moduleAge{$file}) {
&WARN("rM: we're not gonna downgrade '$file'; use touch.");
&DEBUG("age => $age");
&DEBUG("mA{$file} => $moduleAge{$file}");
- return;
+ return $retval;
}
my $dc = &Time2String($age - $moduleAge{$file});
delete $INC{$file};
eval "require \"$file\""; # require or use?
if (@$) {
- &DEBUG("rM: failure: @$");
+ &DEBUG("rM: failure: @$ ");
} else {
my $basename = $file;
$basename =~ s/^.*\///;
&status("Module: reloaded $basename");
+ $retval = " $basename";
$moduleAge{$file} = $age;
}
+ return $retval;
}
###
return 0;
} else {
$perlModulesLoaded{$_[0]} = 1;
- &status("Module: Loaded $_[0] ...");
+ &status("Loaded $_[0]");
&showProc(" ($_[0])");
return 1;
}
my ($tmp) = @_;
if (!defined $tmp) {
&WARN("loadMyModule: module is NULL.");
- return 0;
+ return 0;
}
my ($modulename, $modulebase);
} else {
$moduleAge{$modulefile} = (stat $modulefile)[9];
- &status("myModule: Loaded $modulebase ...");
+ &status("Loaded $modulebase");
&showProc(" ($modulebase)");
return 1;
}
my($dir) = @_;
if (!opendir(DIR, $dir)) {
- &ERROR("Cannot open source directory ($dir): $!");
- exit 1;
+ &ERROR("Cannot open source directory ($dir): $!");
+ exit 1;
}
my @mods;