summaryrefslogtreecommitdiff
path: root/backend/plugin/plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/plugin/plugin.py')
-rw-r--r--backend/plugin/plugin.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/backend/plugin/plugin.py b/backend/plugin/plugin.py
new file mode 100644
index 00000000..3e359ea7
--- /dev/null
+++ b/backend/plugin/plugin.py
@@ -0,0 +1,18 @@
+from posixpath import join
+
+from genericpath import isfile
+
+from plugin.binary_plugin import BinaryPlugin
+from plugin.passive_plugin import PassivePlugin
+from plugin.python_plugin import PythonPlugin
+
+
+def get_plugin_backend(spec, plugin_directory, flags, logger):
+ if spec == None and isfile(join(plugin_directory, "main.py")):
+ return PythonPlugin(plugin_directory, "main.py", flags, logger)
+ elif spec["type"] == "python":
+ return PythonPlugin(plugin_directory, spec["file"], flags, logger)
+ elif spec["type"] == "binary":
+ return BinaryPlugin(plugin_directory, spec["file"], flags, logger)
+ else:
+ return PassivePlugin(logger)