summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrainDoctor <traindoctor@protonmail.com>2022-11-20 11:38:48 -0800
committerTrainDoctor <traindoctor@protonmail.com>2022-12-10 14:25:21 -0800
commit3a927084b0c6bb395955e5f314ff5cc1c1800f4f (patch)
tree5fd2e1a8083a6c0de98a7770fbcd196e4f3a1900
parent5e07c8f028ce3fb0bfda50600dd685648799d389 (diff)
downloaddecky-loader-backend-reloads.tar.gz
decky-loader-backend-reloads.zip
FIlled out functionality of handler function, now for JS to call routebackend-reloads
-rw-r--r--backend/main.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/backend/main.py b/backend/main.py
index 2b986a95..f4a1acb0 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -7,7 +7,7 @@ if hasattr(sys, '_MEIPASS'):
from asyncio import new_event_loop, set_event_loop, sleep
from json import dumps, loads
from logging import DEBUG, INFO, basicConfig, getLogger
-from os import getenv, chmod, path
+from os import getenv, chmod, listdir, path
from traceback import format_exc
import aiohttp_cors
@@ -117,12 +117,16 @@ class PluginManager:
self.plugin_loader.import_plugins()
# await inject_to_tab("SP", "window.syncDeckyPlugins();")
- async def reload_plugin_backend(self, name):
+ async def reload_plugin_backends(self, name):
await self.wait_for_server()
- if name in self.loader.plugins:
- self.loader.plugins[name].stop()
- self.loader.plugins.pop(name, None)
-
+ if name in self.plugin_loader.plugins:
+ self.plugin_loader.plugins[name].stop()
+ self.plugin_loader.plugins.pop(name, None)
+ else:
+ logger.error("Couldn't find plugin %s to reload.", str(name))
+ directories = [i for i in listdir(self.plugin_loader.plugin_path) if path.isdir(path.join(self.plugin_loader.plugin_path, i)) and path.isfile(path.join(self.plugin_loader.plugin_path, i, "plugin.json"))]
+ if name in directories:
+ Loader.import_plugin(path.join(self.plugin_loader.plugin_path, directories[name], "main.py"), directories[name], False, False)
async def loader_reinjector(self):
while True: