summaryrefslogtreecommitdiffstats
path: root/src/modules/pluginloader.py.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/pluginloader.py.in')
-rw-r--r--src/modules/pluginloader.py.in46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/modules/pluginloader.py.in b/src/modules/pluginloader.py.in
new file mode 100644
index 0000000..82357e8
--- /dev/null
+++ b/src/modules/pluginloader.py.in
@@ -0,0 +1,46 @@
+#!@PYTHON@
+# -*- coding: UTF-8 -*-
+# -*- python -*-
+# Copyright (C) 2005 by Sebastien Estienne
+#
+# This file may be distributed and/or modified under the terms of
+# the GNU General Public License version 2 as published by
+# the Free Software Foundation.
+# This file is distributed without any warranty; without even the implied
+# warranty of merchantability or fitness for a particular purpose.
+# See "COPYING" in the source distribution for more information.
+#
+# $id$
+
+import sys
+import os
+
+class PluginLoader:
+ def __init__(self, path):
+ self.plugins = {}
+ print "Looking for plugin in %s." % (path)
+ sys.path.append(path)
+ plugin_dir = os.listdir(path)
+ for plugin in plugin_dir:
+ plugin_file = plugin.split('.',1)
+ if plugin_file[1] == "py":
+ print "New plugin found: %s" % plugin_file[0]
+ module = __import__(plugin_file[0])
+ module_loaded = module.load()
+ for st in module_loaded.service_type:
+ if self.plugins.has_key(st) == False:
+ self.plugins[st] = []
+ self.plugins[st].append(module_loaded)
+
+ def dump_service_type(self):
+ print self.plugins
+
+def main():
+ plugin_path = "/home/sebest/pluginloader/plugins"
+ plugin = PluginLoader(plugin_path)
+ plugin.dump_service_type()
+ plugin.plugins["_ssh._tcp"][0].connect("test", "_ssh._tcp", "coucou", "172.16.200.103", 22, {})
+# plugin.plugins["_sftp-ssh._tcp"][1].connect()
+
+if __name__ == "__main__":
+ main()