From 6a68588cd4cb7fedf73138853f86e8fca9e861fd Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Fri, 19 Nov 2021 18:21:25 -0300 Subject: [PATCH] [appimage] improvement: not stopping the upgrade process when one of several applications have been selected to upgrade --- CHANGELOG.md | 4 +++- bauh/gems/appimage/controller.py | 25 ++++++++++++++++++------- bauh/gems/appimage/resources/locale/ca | 1 + bauh/gems/appimage/resources/locale/de | 1 + bauh/gems/appimage/resources/locale/en | 1 + bauh/gems/appimage/resources/locale/es | 1 + bauh/gems/appimage/resources/locale/fr | 1 + bauh/gems/appimage/resources/locale/it | 1 + bauh/gems/appimage/resources/locale/pt | 1 + bauh/gems/appimage/resources/locale/ru | 1 + bauh/gems/appimage/resources/locale/tr | 1 + 11 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36dfd201..f839ce08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - displaying initial warnings related to supported technologies even when they are not enabled or have the required dependencies - crashing when QT components sizes are not integers [#198](https://github.com/vinifmor/bauh/issues/198) - +### Improvements +- AppImage + - not stopping the upgrade process when one of several applications have been selected to upgrade ## [0.9.20] 2021-11-05 ### Improvements diff --git a/bauh/gems/appimage/controller.py b/bauh/gems/appimage/controller.py index d674e3c7..5cc6d44f 100644 --- a/bauh/gems/appimage/controller.py +++ b/bauh/gems/appimage/controller.py @@ -359,29 +359,40 @@ class AppImageManager(SoftwareManager): return False def upgrade(self, requirements: UpgradeRequirements, root_password: str, watcher: ProcessWatcher) -> bool: + not_upgraded = [] + for req in requirements.to_upgrade: watcher.change_status("{} {} ({})...".format(self.i18n['manage_window.status.upgrading'], req.pkg.name, req.pkg.version)) download_data = self._download(req.pkg, watcher) if not download_data: - return False + not_upgraded.append(req.pkg) + watcher.change_substatus('') + continue if not self.uninstall(req.pkg, root_password, watcher).success: - watcher.show_message(title=self.i18n['error'], - body=self.i18n['appimage.error.uninstall_current_version'], - type_=MessageType.ERROR) + not_upgraded.append(req.pkg) watcher.change_substatus('') - return False + continue if not self._install(pkg=req.pkg, watcher=watcher, pre_downloaded_file=download_data).success: + not_upgraded.append(req.pkg) watcher.change_substatus('') - return False + continue self.cache_to_disk(req.pkg, None, False) + all_failed = len(not_upgraded) == len(requirements.to_upgrade) + + if not_upgraded: + pkgs_str = ''.join((f'
  • {app.name}
  • ' for app in not_upgraded)) + watcher.show_message(title=self.i18n['error' if all_failed else 'warning'].capitalize(), + body=self.i18n['appimage.upgrade.failed'].format(apps=f''), + type_=MessageType.ERROR if all_failed else MessageType.WARNING) + watcher.change_substatus('') - return True + return not all_failed def uninstall(self, pkg: AppImage, root_password: str, watcher: ProcessWatcher, disk_loader: DiskCacheLoader = None) -> TransactionResult: if os.path.exists(pkg.get_disk_cache_path()): diff --git a/bauh/gems/appimage/resources/locale/ca b/bauh/gems/appimage/resources/locale/ca index cb89108d..6e001ac4 100644 --- a/bauh/gems/appimage/resources/locale/ca +++ b/bauh/gems/appimage/resources/locale/ca @@ -36,6 +36,7 @@ appimage.install.permission=S’està concedint el permís d’execució a {} appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Actualització de bases de dades appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/de b/bauh/gems/appimage/resources/locale/de index f4b4659e..809b4e57 100644 --- a/bauh/gems/appimage/resources/locale/de +++ b/bauh/gems/appimage/resources/locale/de @@ -36,6 +36,7 @@ appimage.install.permission=Ausführberechtigungen für {} appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Updating databases appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/en b/bauh/gems/appimage/resources/locale/en index 2c8097b4..d30d5989 100644 --- a/bauh/gems/appimage/resources/locale/en +++ b/bauh/gems/appimage/resources/locale/en @@ -36,6 +36,7 @@ appimage.install.permission=Giving execution permission to {} appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Updating databases appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/es b/bauh/gems/appimage/resources/locale/es index 8232058f..344d3cae 100644 --- a/bauh/gems/appimage/resources/locale/es +++ b/bauh/gems/appimage/resources/locale/es @@ -36,6 +36,7 @@ appimage.install.permission=Concediendo permiso de ejecución a {} appimage.update_database.deleting_old=Eliminando archivos antiguos appimage.update_database.downloading=Descargando archivos de la base de datos appimage.update_database.uncompressing=Descomprindo archivos +appimage.upgrade.failed=No fue posible actualizar las siguientes aplicaciones: {apps} appimage.task.db_update=Actualizando base de datos appimage.task.db_update.checking=Buscando actualizaciones appimage.task.suggestions=Descargando sugerencias diff --git a/bauh/gems/appimage/resources/locale/fr b/bauh/gems/appimage/resources/locale/fr index 3fa93bf8..6c6699cf 100644 --- a/bauh/gems/appimage/resources/locale/fr +++ b/bauh/gems/appimage/resources/locale/fr @@ -35,6 +35,7 @@ appimage.install.permission={} est maintenant exécutable appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Mise à jour des bases de données appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/it b/bauh/gems/appimage/resources/locale/it index f7c4f3a5..9b9330ce 100644 --- a/bauh/gems/appimage/resources/locale/it +++ b/bauh/gems/appimage/resources/locale/it @@ -36,6 +36,7 @@ appimage.install.permission=Gdare il permesso di esecuzione a {} appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Aggiornamento dei database appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/pt b/bauh/gems/appimage/resources/locale/pt index 0575edd9..51e1dd98 100644 --- a/bauh/gems/appimage/resources/locale/pt +++ b/bauh/gems/appimage/resources/locale/pt @@ -36,6 +36,7 @@ appimage.install.permission=Concedendo permissão de execução para {} appimage.update_database.deleting_old=Removendo arquicos antigos appimage.update_database.downloading=Baixando arquivos do banco de dados appimage.update_database.uncompressing=Descomprimindo arquivos +appimage.upgrade.failed=Não foi possível atualizar as seguintes aplicações: {apps} appimage.task.db_update=Atualizando base de dados appimage.task.db_update.checking=Checando atualizações appimage.task.suggestions=Baixando sugestões diff --git a/bauh/gems/appimage/resources/locale/ru b/bauh/gems/appimage/resources/locale/ru index 473e5918..f5d2ff1a 100644 --- a/bauh/gems/appimage/resources/locale/ru +++ b/bauh/gems/appimage/resources/locale/ru @@ -36,6 +36,7 @@ appimage.install.permission=Установить права на выполне appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Обновление базы данных appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions diff --git a/bauh/gems/appimage/resources/locale/tr b/bauh/gems/appimage/resources/locale/tr index cebcd809..2c0f79e6 100644 --- a/bauh/gems/appimage/resources/locale/tr +++ b/bauh/gems/appimage/resources/locale/tr @@ -36,6 +36,7 @@ appimage.install.permission={} için yürütme izni veriliyor appimage.update_database.deleting_old=Removing old files appimage.update_database.downloading=Downloading database files appimage.update_database.uncompressing=Uncompressing files +appimage.upgrade.failed=It was not possible to upgrade the following applications: {apps} appimage.task.db_update=Veritabanları güncelleniyor appimage.task.db_update.checking=Checking for updates appimage.task.suggestions=Downloading suggestions