cutekit/osdk/plugins.py

30 lines
771 B
Python
Raw Normal View History

2023-02-21 16:33:38 +00:00
import os
2023-05-26 20:41:41 +00:00
import logging
2023-02-21 16:33:38 +00:00
import importlib.util as importlib
from osdk.shell import readdir
2023-05-26 20:41:41 +00:00
logger = logging.getLogger(__name__)
def load(path: str):
2023-05-26 20:41:41 +00:00
logger.info(f"Loading plugin {path}")
spec = importlib.spec_from_file_location("plugin", path)
if not spec or not spec.loader:
logger.error(f"Failed to load plugin {path}")
return None
module = importlib.module_from_spec(spec)
spec.loader.exec_module(module)
def loadAll():
2023-05-26 20:41:41 +00:00
logger.info("Loading plugins...")
2023-02-21 16:33:38 +00:00
for files in readdir(os.path.join("meta", "plugins")):
if files.endswith(".py"):
2023-02-21 16:33:38 +00:00
plugin = load(os.path.join("meta", "plugins", files))
if plugin:
print(f"Loaded plugin {plugin.name}")
plugin.init()