diff options
Diffstat (limited to 'backend/updater.py')
| -rw-r--r-- | backend/updater.py | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/backend/updater.py b/backend/updater.py index ba62efd8..402c152b 100644 --- a/backend/updater.py +++ b/backend/updater.py @@ -20,7 +20,7 @@ class Updater: self.settings = self.context.settings # Exposes updater methods to frontend self.updater_methods = { - "get_branch": self.get_branch, + "get_branch": self._get_branch, "get_version": self.get_version, "do_update": self.do_update, "do_restart": self.do_restart, @@ -29,18 +29,18 @@ class Updater: self.remoteVer = None self.allRemoteVers = None try: - self.currentBranch = self.get_branch(self.context.settings) - if int(self.currentBranch) == -1: - raise ValueError("get_branch could not determine branch!") - except: - self.currentBranch = 0 - logger.error("Current branch could not be determined, defaulting to \"Stable\"") - try: + logger.info(getcwd()) with open(path.join(getcwd(), ".loader.version"), 'r') as version_file: self.localVer = version_file.readline().replace("\n", "") except: self.localVer = False + try: + self.currentBranch = self.get_branch(self.context.settings) + except: + self.currentBranch = 0 + logger.error("Current branch could not be determined, defaulting to \"Stable\"") + if context: context.web_app.add_routes([ web.post("/updater/{method_name}", self._handle_server_method_call) @@ -63,9 +63,21 @@ class Updater: res["success"] = False return web.json_response(res) - async def get_branch(self, manager: SettingsManager): - logger.debug("current branch: %i" % manager.getSetting("branch", -1)) - return manager.getSetting("branch", -1) + def get_branch(self, manager: SettingsManager): + ver = manager.getSetting("branch", -1) + logger.debug("current branch: %i" % ver) + if ver == -1: + logger.info("Current branch is not set, determining branch from version...") + if self.localVer.startswith("v") and self.localVer.find("-pre"): + logger.info("Current version determined to be pre-release") + return 1 + else: + logger.info("Current version determined to be stable") + return 0 + return ver + + async def _get_branch(self, manager: SettingsManager): + return self.get_branch(manager) async def get_version(self): if self.localVer: @@ -80,7 +92,7 @@ class Updater: async def check_for_updates(self): logger.debug("checking for updates") - selectedBranch = await self.get_branch(self.context.settings) + selectedBranch = self.get_branch(self.context.settings) async with ClientSession() as web: async with web.request("GET", "https://api.github.com/repos/SteamDeckHomebrew/decky-loader/releases", ssl=helpers.get_ssl_context()) as res: remoteVersions = await res.json() |
