From 60315930a981d397061d6e67f2eb3fe0efe7b6e3 Mon Sep 17 00:00:00 2001 From: Aleksandrs Vinarskis Date: Sat, 8 Feb 2025 23:55:27 +0100 Subject: [PATCH] feat: linux: support arm64 auto-updates --- lib/classes/ota_manager.dart | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/classes/ota_manager.dart b/lib/classes/ota_manager.dart index 85c6105..9ab7b49 100644 --- a/lib/classes/ota_manager.dart +++ b/lib/classes/ota_manager.dart @@ -75,9 +75,27 @@ class OtaManager { await DependenciesManager.verifySupportsAutoinstall(); } // For linux, only .deb is supported for autoinstall - if (DependenciesManager.supportsAutoinstall! && asset.containsKey(Constants.githubApiFieldBrowserDownloadUrl) && asset[Constants.githubApiFieldBrowserDownloadUrl].toString().endsWith(Platform.isLinux ? ".deb" : '.msi')) { - result.add(asset[Constants.githubApiFieldBrowserDownloadUrl]); - break; + if (!DependenciesManager.supportsAutoinstall! || + !asset.containsKey(Constants.githubApiFieldBrowserDownloadUrl)) { + continue; + } + if (Platform.isWindows) { + if (asset[Constants.githubApiFieldBrowserDownloadUrl] + .toString() + .endsWith('.msi')) { + result.add(asset[Constants.githubApiFieldBrowserDownloadUrl]); + break; + } + } else { + String arch = (await _shell.run('dpkg --print-architecture'))[0].stdout.toString(); + if (asset[Constants.githubApiFieldBrowserDownloadUrl] + .toString() + .endsWith('.deb') && + asset[Constants.githubApiFieldBrowserDownloadUrl] + .toString().contains(arch) ) { + result.add(asset[Constants.githubApiFieldBrowserDownloadUrl]); + break; + } } } return result;