From 38770d1483583dfb63a7ed0a898c64ed7dfd2056 Mon Sep 17 00:00:00 2001
From: dms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Date: Thu, 14 Sep 2000 12:07:54 +0000
Subject: [PATCH] ability to reload extra modules automatically

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk@97 c11ca15a-4712-0410-83d8-924469b57eb5
---
 blootbot/src/modules.pl | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/blootbot/src/modules.pl b/blootbot/src/modules.pl
index a4e729b..746de95 100644
--- a/blootbot/src/modules.pl
+++ b/blootbot/src/modules.pl
@@ -175,16 +175,16 @@ sub loadMyModulesNow {
 	$loaded++;
     }
 
-    &status("Modules: Loaded/Total [$loaded/$total]");
+    &status("Module: Loaded/Total [$loaded/$total]");
 }
 
 ### rename to moduleReloadAll?
 sub reloadAllModules {
-    &status("Modules: reloading all.");
+###    &status("Module: reloading all.");
     foreach (map { substr($_,2) } keys %moduleAge) {
         &reloadModule($_);
     }
-    &status("Modules: reloading done.");
+###    &status("Module: reloading done.");
 }
 
 ### rename to modulesReload?
@@ -193,12 +193,12 @@ sub reloadModule {
     my $file	= (grep /\/$mod/, keys %INC)[0];
 
     if (!defined $file) {
-###	&DEBUG("rM: mod '$mod' was not found in \%INC.");
+	&WARN("rM: Cannot reload $mod ($file) since it was not loaded anyway.");
 	return;
     }
 
     if (! -f $file) {
-	&DEBUG("rM: file '$file' does not exist?");
+	&ERROR("rM: file '$file' does not exist?");
 	return;
     }
 
@@ -218,7 +218,7 @@ sub reloadModule {
     } else {
 	my $basename = $file;
 	$basename =~ s/^.*\///;
-	&status("Modules: reloaded $basename");
+	&status("Module: reloaded $basename");
 	$moduleAge{$file} = $age;
     }
 }
@@ -232,9 +232,8 @@ local %perlModulesMissing = ();
 
 sub loadPerlModule {
     return 0 if (exists $perlModulesMissing{$_[0]});
-    return 1 if (exists $perlModulesLoaded{$_[0]});
-
     &reloadModule($_[0]);
+    return 1 if (exists $perlModulesLoaded{$_[0]});
 
     eval "use $_[0]";
     if ($@) {
@@ -268,7 +267,11 @@ sub loadMyModule {
     }
     my $modulefile = "$bot_src_dir/Modules/$modulebase";
 
-    return 1 if (grep /$modulefile/, keys %INC);
+    # call reloadModule() which checks age of file and reload.
+    if (grep /\/$modulebase$/, keys %INC) {
+	&reloadModule($modulebase);
+	return;
+    }
 
     if (! -f $modulefile) {
 	&ERROR("lMM: module ($modulebase) does not exist.");
-- 
2.39.5