diff options
| author | AAGaming <aa@mail.catvibers.me> | 2022-07-25 17:13:50 -0400 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2022-07-25 17:13:50 -0400 |
| commit | afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8 (patch) | |
| tree | 835c8372a59b98ddd1cc595d0fb2bc77cee661d2 /backend | |
| parent | 52dded85ed63f3a388fd90bb35412038c3b79146 (diff) | |
| download | decky-loader-afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8.tar.gz decky-loader-afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8.zip | |
Better install process UX, fix reinstallingv2.0.4-afb2c7c-pre
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/browser.py | 8 | ||||
| -rw-r--r-- | backend/main.py | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/backend/browser.py b/backend/browser.py index 52f5233f..c58a97e5 100644 --- a/backend/browser.py +++ b/backend/browser.py @@ -10,6 +10,7 @@ from asyncio import get_event_loop from time import time from hashlib import sha256 from subprocess import Popen +from injector import inject_to_tab import json @@ -23,9 +24,10 @@ class PluginInstallContext: self.hash = hash class PluginBrowser: - def __init__(self, plugin_path, server_instance) -> None: + def __init__(self, plugin_path, server_instance, plugins) -> None: self.log = getLogger("browser") self.plugin_path = plugin_path + self.plugins = plugins self.install_requests = {} server_instance.add_routes([ @@ -64,6 +66,9 @@ class PluginBrowser: self.log.info("uninstalling " + name) self.log.info(" at dir " + self.find_plugin_folder(name)) await tab.evaluate_js(f"DeckyPluginLoader.unloadPlugin('{name}')") + if self.plugins[name]: + self.plugins[name].stop() + self.plugins.pop(name, None) rmtree(self.find_plugin_folder(name)) except FileNotFoundError: self.log.warning(f"Plugin {name} not installed, skipping uninstallation") @@ -95,6 +100,7 @@ class PluginBrowser: ) if ret: self.log.info(f"Installed {name} (Version: {version})") + await inject_to_tab("SP", "window.syncDeckyPlugins()") else: self.log.fatal(f"SHA-256 Mismatch!!!! {name} (Version: {version})") else: diff --git a/backend/main.py b/backend/main.py index 52e0ce06..ce503e8e 100644 --- a/backend/main.py +++ b/backend/main.py @@ -46,7 +46,7 @@ class PluginManager: allow_headers="*") }) self.plugin_loader = Loader(self.web_app, CONFIG["plugin_path"], self.loop, CONFIG["live_reload"]) - self.plugin_browser = PluginBrowser(CONFIG["plugin_path"], self.web_app) + self.plugin_browser = PluginBrowser(CONFIG["plugin_path"], self.web_app, self.plugin_loader.plugins) self.utilities = Utilities(self) self.updater = Updater(self) |
