From a5ec33adeba16a68694ab6a6e2ae96dc78da8786 Mon Sep 17 00:00:00 2001 From: Daniel Folkinshteyn Date: Wed, 11 Aug 2010 00:43:05 -0400 Subject: [PATCH] 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 --- src/plugin.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugin.py b/src/plugin.py index 2eb96b2ae..8ab422ed3 100644 --- a/src/plugin.py +++ b/src/plugin.py @@ -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)