Ahenk/opt/ahenk/base/plugin/PluginManager.py
2016-03-01 18:43:26 +02:00

39 lines
1.5 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: İsmail BAŞARAN <ismail.basaran@tubitak.gov.tr> <basaran.ismaill@gmail.com>
from base.plugin.Plugin import Plugin
import imp,os
class PluginManager(object):
"""docstring for PluginManager"""
#implement logger
def __init__(self, configManager):
super(PluginManager, self).__init__()
self.configManager = configManager
self.plugins = []
def loadPlugins():
self.plugins = []
possibleplugins = os.listdir(self.configManager.get("PLUGIN", "pluginFolderPath"))
for pname in possibleplugins:
location = os.path.join(self.configManager.get("PLUGIN", "pluginFolderPath"), pname)
if not os.path.isdir(location) or not self.configManager.get("PLUGIN", "mainModuleName") + ".py" in os.listdir(location):
continue
info = imp.find_module(self.configManager.get("PLUGIN", "mainModuleName"), [location])
#mainModule = self.loadSinglePlugin(info):
self.plugins.append(Plugin(pname,mainModule))
def createQueueForPlugin(self):
def loadSinglePlugin(self,pluginInfo):
return imp.load_module(self.configManager.get("PLUGIN", "mainModuleName"), *pluginInfo)
def findSinglePlugin(self,pluginName):
for plugin in self.getPlugins():
if plugin["name"] == self.plugins:
return self.loadSinglePlugin(plugin)
def findCommand(self,comamndName):
pass