mirror of
https://github.com/Pardus-LiderAhenk/ahenk
synced 2024-11-23 10:12:18 +03:00
39 lines
1.5 KiB
Python
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
|