X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fmodules.pl;h=7de063a38d22f412a991e8926d387c041171cb03;hb=f7cae48a17d6decd0a9bd997188271daa0a885b1;hp=62c8e1da1ae8b36a4ed33ff2ff9e34c3cabdacc2;hpb=9f6fa885f8438f3cf7b13387cd93bb2bee4640b5;p=infobot.git diff --git a/src/modules.pl b/src/modules.pl index 62c8e1d..7de063a 100644 --- a/src/modules.pl +++ b/src/modules.pl @@ -55,6 +55,7 @@ if ($@) { "zippy" => "Zippy.pl", "zsi" => "zsi.pl", "botmail" => "botmail.pl", + "httpdtype" => "HTTPDtype.pl", ); ### THIS IS NOT LOADED ON RELOAD :( my @myModulesLoadNow; @@ -157,7 +158,7 @@ sub loadIRCModules { &ERROR("require \"$mod\" => $@"); &shutdown(); exit 1; - } + } $moduleAge{$mod} = (stat $mod)[9]; &showProc(" ($_)") if (&IsParam("DEBUG")); @@ -197,40 +198,44 @@ sub loadMyModulesNow { ### 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]; @@ -238,13 +243,13 @@ sub reloadModule { 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}); @@ -259,13 +264,15 @@ sub reloadModule { 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; } ### @@ -297,7 +304,7 @@ sub loadMyModule { my ($tmp) = @_; if (!defined $tmp) { &WARN("loadMyModule: module is NULL."); - return 0; + return 0; } my ($modulename, $modulebase); @@ -381,8 +388,8 @@ sub getPerlFiles { my($dir) = @_; if (!opendir(DIR, $dir)) { - &ERROR("Cannot open source directory ($dir): $!"); - exit 1; + &ERROR("Cannot open source directory ($dir): $!"); + exit 1; } my @mods;