Make plugin loading/reloading case-insensitive.

Since load/reload was the only place where case mattered for plugins, and it tripped up
a lot of new users, this should be a nice bit of usability improvement.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
This commit is contained in:
Daniel Folkinshteyn 2010-08-11 00:43:05 -04:00 committed by James McCoy
parent 92be7c255f
commit a5ec33adeb

View File

@ -32,6 +32,7 @@ import sys
import imp
import os.path
import linecache
import re
from . import callbacks, conf, log, registry
@ -52,6 +53,13 @@ def loadPluginModule(name, ignoreDeprecation=False):
except EnvironmentError: # OSError, IOError superclass.
log.warning('Invalid plugin directory: %s; removing.', dir)
conf.supybot.directories.plugins().remove(dir)
if name not in files:
matched_names = filter(lambda x: re.search(r'(?i)^%s$' % (name,), x),
files)
if len(matched_names) == 1:
name = matched_names[0]
else:
raise ImportError, name
moduleInfo = imp.find_module(name, pluginDirs)
try:
module = imp.load_module(name, *moduleInfo)