From 54976c3d43baa82707b17b5cc53cb7d8a4f705dc Mon Sep 17 00:00:00 2001 From: keyboard-slayer Date: Mon, 29 May 2023 21:42:59 +0200 Subject: [PATCH] feat: project can loads plugins from external deps --- cutekit/plugins.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/cutekit/plugins.py b/cutekit/plugins.py index dff9fb1..653f3de 100644 --- a/cutekit/plugins.py +++ b/cutekit/plugins.py @@ -1,7 +1,7 @@ import os import logging -from cutekit import shell, project +from cutekit import shell, project, const, context import importlib.util as importlib @@ -23,16 +23,21 @@ def loadAll(): logger.info("Loading plugins...") projectRoot = project.root() + pj = context.loadProject(projectRoot) + paths = list(map(lambda e: os.path.join(const.EXTERN_DIR, e), pj.extern.keys())) + ["."] + if projectRoot is None: logger.info("Not in project, skipping plugin loading") return - - pluginDir = os.path.join(projectRoot, "meta/plugins") - for files in shell.readdir(pluginDir): - if files.endswith(".py"): - plugin = load(os.path.join(pluginDir, files)) + for dirname in paths: + pluginDir = os.path.join(projectRoot, dirname, const.META_DIR, "plugins") + + for files in shell.readdir(pluginDir): + if files.endswith(".py"): + plugin = load(os.path.join(pluginDir, files)) + + if plugin: + logger.info(f"Loaded plugin {plugin.name}") + plugin.init() - if plugin: - print(f"Loaded plugin {plugin.name}") - plugin.init()