ocarina/src/plugins/plugins.py

75 lines
1.4 KiB
Python

# Basic plugin class
__author__="bjschuma"
__date__ ="$Jan 22, 2010 12:14:01 AM$"
from bt.message import write
from bt import plugin
from session import manager
class Plugin(plugin.Plugin):
def __init__(self):
plugin.Plugin.__init__(self)
self.help = "Enable, disable, or reload plugins"
self.usage = "plugins [enable, disable, reload, list]"
def list(self,args):
usage = "Usage: plugins list [enabled, disabled]"
if len(args) == 0:
write(usage)
return
if args[0] == "enabled":
enabled = True
elif args[0] == "disabled":
enabled = False
else:
write(usage)
return
if enabled == True:
list = manager.enabled.keys()
type = "Enabled"
else:
list = manager.disabled.keys()
type = "Disabled"
if len(list) == 0:
write("Nothing to list")
return []
write(type + " plugins")
write("----------------")
join = ", "
joined = join.join(list)
write(joined)
return list
def run(self, args=None):
if args == None:
write("Usage: " + self.usage)
return
if args[0] == "enable":
func = manager.enablePlugin
elif args[0] == "disable":
if ("plugins" in args)==True:
return
func = manager.disablePlugin
elif args[0] == "reload":
func = manager.reloadPlugin
elif args[0] == "list":
return self.list(args[1:])
else:
write("Usage: " + self.usage)
return
for plugin in args[1:]:
func(plugin)