mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[arch] fix -> crashing when information of a given package is not available
This commit is contained in:
@@ -4,6 +4,14 @@ 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/).
|
||||
|
||||
## [0.9.12] 2021
|
||||
### Fixes
|
||||
- Arch
|
||||
- crashing when information of a given package is not available
|
||||
|
||||
- UI
|
||||
- displaying a popup when information of a given package is not available
|
||||
|
||||
## [0.9.11] 2020-12-30
|
||||
### New system requirements
|
||||
- **python-dateutil**: better Python library for date handling (install the equivalent package for your Linux distribution before upgrading bauh)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
__version__ = '0.9.11'
|
||||
__version__ = '0.9.12'
|
||||
__app_name__ = 'bauh'
|
||||
|
||||
import os
|
||||
|
||||
@@ -1417,21 +1417,23 @@ class ArchManager(SoftwareManager):
|
||||
t.start()
|
||||
|
||||
info = pacman.get_info_dict(pkg.name)
|
||||
self._parse_dates_string_from_info(pkg.name, info)
|
||||
|
||||
if pkg.commit:
|
||||
info['commit'] = pkg.commit
|
||||
if info is not None:
|
||||
self._parse_dates_string_from_info(pkg.name, info)
|
||||
|
||||
if pkg.last_modified:
|
||||
info['last_modified'] = self._parse_timestamp(ts=pkg.last_modified,
|
||||
error_msg="Could not parse AUR package '{}' 'last_modified' field ({})".format(pkg.name, pkg.last_modified))
|
||||
if pkg.commit:
|
||||
info['commit'] = pkg.commit
|
||||
|
||||
t.join()
|
||||
if pkg.last_modified:
|
||||
info['last_modified'] = self._parse_timestamp(ts=pkg.last_modified,
|
||||
error_msg="Could not parse AUR package '{}' 'last_modified' field ({})".format(pkg.name, pkg.last_modified))
|
||||
|
||||
if pkg.pkgbuild:
|
||||
info['13_pkg_build'] = pkg.pkgbuild
|
||||
t.join()
|
||||
|
||||
info['14_installed_files'] = pacman.list_installed_files(pkg.name)
|
||||
if pkg.pkgbuild:
|
||||
info['13_pkg_build'] = pkg.pkgbuild
|
||||
|
||||
info['14_installed_files'] = pacman.list_installed_files(pkg.name)
|
||||
|
||||
return info
|
||||
else:
|
||||
@@ -1501,9 +1503,12 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
def _get_info_repo_pkg(self, pkg: ArchPackage) -> dict:
|
||||
info = pacman.get_info_dict(pkg.name, remote=not pkg.installed)
|
||||
self._parse_dates_string_from_info(pkg.name, info)
|
||||
if pkg.installed:
|
||||
info['installed files'] = pacman.list_installed_files(pkg.name)
|
||||
|
||||
if info is not None:
|
||||
self._parse_dates_string_from_info(pkg.name, info)
|
||||
|
||||
if pkg.installed:
|
||||
info['installed files'] = pacman.list_installed_files(pkg.name)
|
||||
|
||||
return info
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ def get_info_list(pkg_name: str, remote: bool = False) -> List[tuple]:
|
||||
return re.findall(r'(\w+\s?\w+)\s*:\s*(.+(\n\s+.+)*)', info)
|
||||
|
||||
|
||||
def get_info_dict(pkg_name: str, remote: bool = False) -> dict:
|
||||
def get_info_dict(pkg_name: str, remote: bool = False) -> Optional[dict]:
|
||||
list_attrs = {'depends on', 'required by', 'conflicts with'}
|
||||
info_list = get_info_list(pkg_name, remote)
|
||||
|
||||
|
||||
@@ -644,7 +644,12 @@ class ShowPackageInfo(AsyncAction):
|
||||
def run(self):
|
||||
if self.pkg:
|
||||
info = {'__app__': self.pkg}
|
||||
info.update(self.manager.get_info(self.pkg.model))
|
||||
|
||||
pkg_info = self.manager.get_info(self.pkg.model)
|
||||
|
||||
if pkg_info:
|
||||
info.update(pkg_info)
|
||||
|
||||
self.notify_finished(info)
|
||||
self.pkg = None
|
||||
|
||||
|
||||
@@ -1216,9 +1216,16 @@ class ManageWindow(QWidget):
|
||||
|
||||
def _finish_show_info(self, pkg_info: dict):
|
||||
self._finish_action(action_id=ACTION_INFO)
|
||||
dialog_info = InfoDialog(pkg_info=pkg_info, icon_cache=self.icon_cache,
|
||||
i18n=self.i18n, screen_size=self.screen_size)
|
||||
dialog_info.exec_()
|
||||
|
||||
if pkg_info:
|
||||
if len(pkg_info) > 1:
|
||||
dialog_info = InfoDialog(pkg_info=pkg_info, icon_cache=self.icon_cache,
|
||||
i18n=self.i18n, screen_size=self.screen_size)
|
||||
dialog_info.exec_()
|
||||
else:
|
||||
dialog.show_message(title=self.i18n['warning'].capitalize(),
|
||||
body=self.i18n['manage_window.info.no_info'].format(bold(pkg_info['__app__'].model.name)),
|
||||
type_=MessageType.WARNING)
|
||||
|
||||
def begin_show_screenshots(self, pkg: PackageView):
|
||||
self._begin_action(action_label=self.i18n['manage_window.status.screenshots'].format(bold(pkg.model.name)),
|
||||
|
||||
@@ -316,6 +316,7 @@ manage_window.checkbox.show_details=Mostra detalls
|
||||
manage_window.columns.installed=Installed
|
||||
manage_window.columns.latest_version=Versió més recent
|
||||
manage_window.columns.update=Voleu actualitzar?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Actualitzacions
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
@@ -315,6 +315,7 @@ manage_window.checkbox.show_details=Details anzeigen
|
||||
manage_window.columns.installed=Installed
|
||||
manage_window.columns.latest_version=Neueste Version
|
||||
manage_window.columns.update=Upgraden?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Updates
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
@@ -316,6 +316,7 @@ manage_window.checkbox.show_details=Show details
|
||||
manage_window.columns.installed=Installed
|
||||
manage_window.columns.latest_version=Latest Version
|
||||
manage_window.columns.update=Upgrade ?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Updates
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
@@ -317,6 +317,7 @@ manage_window.checkbox.show_details=Mostrar detalles
|
||||
manage_window.columns.installed=Instaladas
|
||||
manage_window.columns.latest_version=Versión más reciente
|
||||
manage_window.columns.update=¿Quiere actualizar?
|
||||
manage_window.info.no_info=No hay información disponible para {}
|
||||
manage_window.label.apps_displayed.tip=Applicaciones mostradas / disponibles
|
||||
manage_window.label.updates=Actualizaciones
|
||||
manage_window.name_filter.button_tooltip=Haga clic aquí para filtrar aplicaciones por nombre
|
||||
|
||||
@@ -314,6 +314,7 @@ manage_window.checkbox.show_details=Détails
|
||||
manage_window.columns.installed=Installé
|
||||
manage_window.columns.latest_version=Dernière Version
|
||||
manage_window.columns.update=Mettre à jour ?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.updates=Mises à jour
|
||||
manage_window.name_filter.placeholder=Filtrer par nom
|
||||
manage_window.name_filter.tooltip=Taper ici pour filtrer les applications par nom
|
||||
|
||||
@@ -317,6 +317,7 @@ manage_window.checkbox.show_details=Mostra dettagli
|
||||
manage_window.columns.installed=Installed
|
||||
manage_window.columns.latest_version=Ultima Versione
|
||||
manage_window.columns.update=Upgrade ?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Aggiornamenti
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
@@ -316,6 +316,7 @@ manage_window.checkbox.show_details=Mostrar detalhes
|
||||
manage_window.columns.installed=Instalado
|
||||
manage_window.columns.latest_version=Última Versão
|
||||
manage_window.columns.update=Atualizar ?
|
||||
manage_window.info.no_info=Não há informação disponível para {}
|
||||
manage_window.label.apps_displayed.tip=Aplicações exibidas / disponíveis
|
||||
manage_window.label.updates=Atualizações
|
||||
manage_window.name_filter.button_tooltip=Clique aqui para filtrar aplicativos por nome
|
||||
|
||||
@@ -315,6 +315,7 @@ manage_window.checkbox.show_details=Показать детали
|
||||
manage_window.columns.installed=Installed
|
||||
manage_window.columns.latest_version=Последняя версия
|
||||
manage_window.columns.update=Обновить?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Обновления
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
@@ -315,6 +315,7 @@ manage_window.checkbox.show_details=Detayları göster
|
||||
manage_window.columns.installed=Yüklü
|
||||
manage_window.columns.latest_version=Son sürüm
|
||||
manage_window.columns.update=Yükselt ?
|
||||
manage_window.info.no_info=There is no information available for {}
|
||||
manage_window.label.apps_displayed.tip=Applications displayed / available
|
||||
manage_window.label.updates=Güncellemeler
|
||||
manage_window.name_filter.button_tooltip=Click here to filter apps by name
|
||||
|
||||
Reference in New Issue
Block a user