mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-11 04:14:15 +02:00
[flatpak] feature: 'full update' custom action
This commit is contained in:
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
## [0.10.1]
|
## [0.10.1]
|
||||||
|
### Features
|
||||||
|
- Flatpak
|
||||||
|
- new custom action "Full update": fully updates all installed Flatpak apps and components (useful if you are having issues with runtime updates)
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.10.1/flatpak_full_update.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
### Improvements
|
### Improvements
|
||||||
- General
|
- General
|
||||||
- code refactoring
|
- code refactoring
|
||||||
|
|||||||
@@ -313,6 +313,8 @@ prefer_repository_provider: true # when there is just one repository provider f
|
|||||||
```
|
```
|
||||||
installation_level: null # defines a default installation level: "user" or "system". (null will display a popup asking the level)
|
installation_level: null # defines a default installation level: "user" or "system". (null will display a popup asking the level)
|
||||||
```
|
```
|
||||||
|
- Custom actions supported:
|
||||||
|
- **Full update**: it completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
|
||||||
|
|
||||||
#### <a name="type_snap">Snap</a>
|
#### <a name="type_snap">Snap</a>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from bauh.api.abstract.controller import SearchResult, SoftwareManager, Applicat
|
|||||||
from bauh.api.abstract.disk import DiskCacheLoader
|
from bauh.api.abstract.disk import DiskCacheLoader
|
||||||
from bauh.api.abstract.handler import ProcessWatcher, TaskManager
|
from bauh.api.abstract.handler import ProcessWatcher, TaskManager
|
||||||
from bauh.api.abstract.model import PackageHistory, PackageUpdate, SoftwarePackage, PackageSuggestion, \
|
from bauh.api.abstract.model import PackageHistory, PackageUpdate, SoftwarePackage, PackageSuggestion, \
|
||||||
SuggestionPriority, PackageStatus
|
SuggestionPriority, PackageStatus, CustomSoftwareAction
|
||||||
from bauh.api.abstract.view import MessageType, FormComponent, SingleSelectComponent, InputOption, SelectViewType, \
|
from bauh.api.abstract.view import MessageType, FormComponent, SingleSelectComponent, InputOption, SelectViewType, \
|
||||||
ViewComponent, PanelComponent
|
ViewComponent, PanelComponent
|
||||||
from bauh.commons.boot import CreateConfigFile
|
from bauh.commons.boot import CreateConfigFile
|
||||||
@@ -46,6 +46,7 @@ class FlatpakManager(SoftwareManager):
|
|||||||
self.suggestions_cache = context.cache_factory.new(None)
|
self.suggestions_cache = context.cache_factory.new(None)
|
||||||
self.logger = context.logger
|
self.logger = context.logger
|
||||||
self.configman = FlatpakConfigManager()
|
self.configman = FlatpakConfigManager()
|
||||||
|
self._action_full_update: Optional[CustomSoftwareAction] = None
|
||||||
|
|
||||||
def get_managed_types(self) -> Set["type"]:
|
def get_managed_types(self) -> Set["type"]:
|
||||||
return {FlatpakApplication}
|
return {FlatpakApplication}
|
||||||
@@ -734,3 +735,25 @@ class FlatpakManager(SoftwareManager):
|
|||||||
self._write_ignored_updates(ignored_keys)
|
self._write_ignored_updates(ignored_keys)
|
||||||
|
|
||||||
pkg.updates_ignored = False
|
pkg.updates_ignored = False
|
||||||
|
|
||||||
|
def gen_custom_actions(self) -> Generator[CustomSoftwareAction, None, None]:
|
||||||
|
yield self.action_full_update
|
||||||
|
|
||||||
|
def full_update(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||||
|
handler = ProcessHandler(watcher)
|
||||||
|
return handler.handle_simple(flatpak.full_update(flatpak.get_version()))[0]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def action_full_update(self) -> CustomSoftwareAction:
|
||||||
|
if self._action_full_update is None:
|
||||||
|
self._action_full_update = CustomSoftwareAction(i18n_label_key='flatpak.action.full_update',
|
||||||
|
i18n_description_key='flatpak.action.full_update.description',
|
||||||
|
i18n_status_key='flatpak.action.full_update.status',
|
||||||
|
backup=True,
|
||||||
|
manager=self,
|
||||||
|
requires_internet=True,
|
||||||
|
icon_path=get_icon_path(),
|
||||||
|
manager_method='full_update',
|
||||||
|
requires_root=False)
|
||||||
|
|
||||||
|
return self._action_full_update
|
||||||
|
|||||||
@@ -172,6 +172,11 @@ def update(app_ref: str, installation: str, version: Version, related: bool = Fa
|
|||||||
lang=DEFAULT_LANG if version < VERSION_1_12 else None)
|
lang=DEFAULT_LANG if version < VERSION_1_12 else None)
|
||||||
|
|
||||||
|
|
||||||
|
def full_update(version: VERSION_1_12) -> SimpleProcess:
|
||||||
|
return SimpleProcess(cmd=('flatpak', 'update', '-y'), extra_paths={EXPORTS_PATH}, shell=True,
|
||||||
|
lang=DEFAULT_LANG if version < VERSION_1_12 else None)
|
||||||
|
|
||||||
|
|
||||||
def uninstall(app_ref: str, installation: str, version: Version) -> SimpleProcess:
|
def uninstall(app_ref: str, installation: str, version: Version) -> SimpleProcess:
|
||||||
return SimpleProcess(cmd=('flatpak', 'uninstall', app_ref, '-y', f'--{installation}'),
|
return SimpleProcess(cmd=('flatpak', 'uninstall', app_ref, '-y', f'--{installation}'),
|
||||||
extra_paths={EXPORTS_PATH},
|
extra_paths={EXPORTS_PATH},
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=level
|
flatpak.config.install_level=level
|
||||||
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
||||||
flatpak.config.install_level.system=system
|
flatpak.config.install_level.system=system
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=level
|
flatpak.config.install_level=level
|
||||||
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
||||||
flatpak.config.install_level.system=system
|
flatpak.config.install_level.system=system
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=level
|
flatpak.config.install_level=level
|
||||||
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
||||||
flatpak.config.install_level.system=system
|
flatpak.config.install_level.system=system
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Actualización completa
|
||||||
|
flatpak.action.full_update.description=Actualiza completamente las aplicaciones y componentes Flatpak. Útil si hay problemas con las actualizaciones de runtimes.
|
||||||
|
flatpak.action.full_update.status=Actualizando las aplicaciones y componentes Flatpak
|
||||||
flatpak.config.install_level=nivel
|
flatpak.config.install_level=nivel
|
||||||
flatpak.config.install_level.ask.tip={app} preguntará el nivel que debe aplicarse durante la instalación de la aplicación
|
flatpak.config.install_level.ask.tip={app} preguntará el nivel que debe aplicarse durante la instalación de la aplicación
|
||||||
flatpak.config.install_level.system=sistema
|
flatpak.config.install_level.system=sistema
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=niveau
|
flatpak.config.install_level=niveau
|
||||||
flatpak.config.install_level.ask.tip={app} va demander le niveau à appliquer durant l'installation
|
flatpak.config.install_level.ask.tip={app} va demander le niveau à appliquer durant l'installation
|
||||||
flatpak.config.install_level.system=système
|
flatpak.config.install_level.system=système
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=level
|
flatpak.config.install_level=level
|
||||||
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
flatpak.config.install_level.ask.tip={app} will ask the level that should be applied during the app installation
|
||||||
flatpak.config.install_level.system=system
|
flatpak.config.install_level.system=system
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Atualização completa
|
||||||
|
flatpak.action.full_update.description=Atualiza completamente aplicações e componentes Flatpak instalados. Útil se você estiver com problemas de atualização dos runtimes.
|
||||||
|
flatpak.action.full_update.status=Atualizando aplicações e componentes Flatpak
|
||||||
flatpak.config.install_level=nível
|
flatpak.config.install_level=nível
|
||||||
flatpak.config.install_level.ask.tip=O {app} perguntará qual o nível deverá ser aplicado durante a instalação do aplicativo
|
flatpak.config.install_level.ask.tip=O {app} perguntará qual o nível deverá ser aplicado durante a instalação do aplicativo
|
||||||
flatpak.config.install_level.system=sistema
|
flatpak.config.install_level.system=sistema
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=Уровень
|
flatpak.config.install_level=Уровень
|
||||||
flatpak.config.install_level.ask.tip={app} запросит уровень, который должен быть применен во время установки приложения
|
flatpak.config.install_level.ask.tip={app} запросит уровень, который должен быть применен во время установки приложения
|
||||||
flatpak.config.install_level.system=Система
|
flatpak.config.install_level.system=Система
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
flatpak.action.full_update=Full update
|
||||||
|
flatpak.action.full_update.description=It completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
|
||||||
|
flatpak.action.full_update.status=Updating Flatpak apps and components
|
||||||
flatpak.config.install_level=seviye
|
flatpak.config.install_level=seviye
|
||||||
flatpak.config.install_level.ask.tip={app} uygulama kurulumu sırasında uygulanması gereken seviyeyi soracak
|
flatpak.config.install_level.ask.tip={app} uygulama kurulumu sırasında uygulanması gereken seviyeyi soracak
|
||||||
flatpak.config.install_level.system=sistem
|
flatpak.config.install_level.system=sistem
|
||||||
|
|||||||
Reference in New Issue
Block a user