diff options
| author | geeksville <kevinh@geeksville.com> | 2023-03-05 14:30:26 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-05 14:30:26 -0800 |
| commit | 3e5404abdd870d0640f6528ef52e8d75437fe881 (patch) | |
| tree | 4bf2b0c97cd91d3397b2473452eafa9686ba4ff5 /backend | |
| parent | 46abc5a2666a7b3006a12d87bf56a7a12c300732 (diff) | |
| download | decky-loader-3e5404abdd870d0640f6528ef52e8d75437fe881.tar.gz decky-loader-3e5404abdd870d0640f6528ef52e8d75437fe881.zip | |
fix #390 the plugin_directory argument to import_plugin was incorrect (#391)v2.6.3-pre2
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/browser.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/backend/browser.py b/backend/browser.py index dbdf2d5f..c15e1ada 100644 --- a/backend/browser.py +++ b/backend/browser.py @@ -42,7 +42,7 @@ class PluginBrowser: return False zip_file = ZipFile(zip) zip_file.extractall(self.plugin_path) - plugin_dir = self.find_plugin_folder(name) + plugin_dir = path.join(self.plugin_path, self.find_plugin_folder(name)) code_chown = call(["chown", "-R", get_user()+":"+get_user_group(), plugin_dir]) code_chmod = call(["chmod", "-R", "555", plugin_dir]) if code_chown != 0 or code_chmod != 0: @@ -92,6 +92,7 @@ class PluginBrowser: return rv + """Return the filename (only) for the specified plugin""" def find_plugin_folder(self, name): for folder in listdir(self.plugin_path): try: @@ -99,7 +100,7 @@ class PluginBrowser: plugin = json.load(f) if plugin['name'] == name: - return str(path.join(self.plugin_path, folder)) + return folder except: logger.debug(f"skipping {folder}") @@ -107,9 +108,10 @@ class PluginBrowser: if self.loader.watcher: self.loader.watcher.disabled = True tab = await get_gamepadui_tab() + plugin_dir = path.join(self.plugin_path, self.find_plugin_folder(name)) try: logger.info("uninstalling " + name) - logger.info(" at dir " + self.find_plugin_folder(name)) + logger.info(" at dir " + plugin_dir) logger.debug("calling frontend unload for %s" % str(name)) res = await tab.evaluate_js(f"DeckyPluginLoader.unloadPlugin('{name}')") logger.debug("result of unload from UI: %s", res) @@ -123,11 +125,11 @@ class PluginBrowser: del self.plugins[name] logger.debug("Plugin %s was removed from the dictionary", name) logger.debug("removing files %s" % str(name)) - rmtree(self.find_plugin_folder(name)) + rmtree(plugin_dir) except FileNotFoundError: logger.warning(f"Plugin {name} not installed, skipping uninstallation") except Exception as e: - logger.error(f"Plugin {name} in {self.find_plugin_folder(name)} was not uninstalled") + logger.error(f"Plugin {name} in {plugin_dir} was not uninstalled") logger.error(f"Error at %s", exc_info=e) if self.loader.watcher: self.loader.watcher.disabled = False @@ -160,7 +162,8 @@ class PluginBrowser: logger.debug("Unzipping...") ret = self._unzip_to_plugin_dir(res_zip, name, hash) if ret: - plugin_dir = self.find_plugin_folder(name) + plugin_folder = self.find_plugin_folder(name) + plugin_dir = path.join(self.plugin_path, plugin_folder) ret = await self._download_remote_binaries_for_plugin_with_name(plugin_dir) if ret: logger.info(f"Installed {name} (Version: {version})") @@ -168,7 +171,7 @@ class PluginBrowser: self.loader.plugins[name].stop() self.loader.plugins.pop(name, None) await sleep(1) - self.loader.import_plugin(path.join(plugin_dir, "main.py"), plugin_dir) + self.loader.import_plugin(path.join(plugin_dir, "main.py"), plugin_folder) else: logger.fatal(f"Failed Downloading Remote Binaries") else: |
