summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/browser.py7
-rw-r--r--backend/main.py8
2 files changed, 15 insertions, 0 deletions
diff --git a/backend/browser.py b/backend/browser.py
index 69f82bdb..6a17cba4 100644
--- a/backend/browser.py
+++ b/backend/browser.py
@@ -60,6 +60,9 @@ class PluginBrowser:
if "remote_binary" in packageJson and len(packageJson["remote_binary"]) > 0:
# create bin directory if needed.
rc=call(["chmod", "-R", "777", pluginBasePath])
+ if rc != 0:
+ logger.error(f"chown of plugin w/ remote binary exited with a non-zero exit code, chmod: {rc})")
+
if access(pluginBasePath, W_OK):
if not path.exists(pluginBinPath):
@@ -67,6 +70,8 @@ class PluginBrowser:
if not access(pluginBinPath, W_OK):
rc=call(["chmod", "-R", "777", pluginBinPath])
+ if rc != 0:
+ logger.error(f"chown of plugin w/ remote binary exited with a non-zero exit code, chmod: {rc})")
rv = True
for remoteBinary in packageJson["remote_binary"]:
@@ -80,6 +85,8 @@ class PluginBrowser:
code_chown = call(["chown", "-R", get_user()+":"+get_user_group(), self.plugin_path])
rc=call(["chmod", "-R", "555", pluginBasePath])
+ if code_chown or rc != 0:
+ logger.error(f"chown/chmod exited with a non-zero exit code (chown: {code_chown}, chmod: {rc})")
else:
rv = True
logger.debug(f"No Remote Binaries to Download")
diff --git a/backend/main.py b/backend/main.py
index c144c13a..2b986a95 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -91,6 +91,7 @@ class PluginManager:
chown_plugin_dir()
self.loop.create_task(self.loader_reinjector())
self.loop.create_task(self.load_plugins())
+ self.loop.create_task(self.reload_plugin_backends())
self.web_app.on_startup.append(startup)
@@ -116,6 +117,13 @@ class PluginManager:
self.plugin_loader.import_plugins()
# await inject_to_tab("SP", "window.syncDeckyPlugins();")
+ async def reload_plugin_backend(self, name):
+ await self.wait_for_server()
+ if name in self.loader.plugins:
+ self.loader.plugins[name].stop()
+ self.loader.plugins.pop(name, None)
+
+
async def loader_reinjector(self):
while True:
tab = None