diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/browser.py | 7 | ||||
| -rw-r--r-- | backend/main.py | 8 |
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 |
