mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-24 11:39:25 +01:00
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.
This commit is contained in:
parent
808cb2c9f4
commit
29837e94b1
@ -32,6 +32,7 @@ import sys
|
|||||||
import imp
|
import imp
|
||||||
import os.path
|
import os.path
|
||||||
import linecache
|
import linecache
|
||||||
|
import re
|
||||||
|
|
||||||
import supybot.log as log
|
import supybot.log as log
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
@ -55,6 +56,13 @@ def loadPluginModule(name, ignoreDeprecation=False):
|
|||||||
except EnvironmentError: # OSError, IOError superclass.
|
except EnvironmentError: # OSError, IOError superclass.
|
||||||
log.warning('Invalid plugin directory: %s; removing.', dir)
|
log.warning('Invalid plugin directory: %s; removing.', dir)
|
||||||
conf.supybot.directories.plugins().remove(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)
|
moduleInfo = imp.find_module(name, pluginDirs)
|
||||||
try:
|
try:
|
||||||
module = imp.load_module(name, *moduleInfo)
|
module = imp.load_module(name, *moduleInfo)
|
||||||
|
Loading…
Reference in New Issue
Block a user