fix: AUR optinal dep not found among installed apps

This commit is contained in:
Vinicius Moreira
2019-09-19 14:33:51 -03:00
parent a900789c9d
commit 94031588b0
3 changed files with 13 additions and 3 deletions

View File

@@ -416,7 +416,7 @@ class ArchManager(SoftwareManager):
pkg_mirrors = self._map_mirrors(to_install) pkg_mirrors = self._map_mirrors(to_install)
if pkg_mirrors: if pkg_mirrors:
final_optdeps = {dep: {'desc': odeps[dep], 'mirror': pkg_mirrors[dep]} for dep in to_install} final_optdeps = {dep: {'desc': odeps.get(dep), 'mirror': pkg_mirrors.get(dep)} for dep in to_install if dep in pkg_mirrors}
deps_to_install = confirmation.request_optional_deps(pkgname, final_optdeps, handler.watcher, self.i18n) deps_to_install = confirmation.request_optional_deps(pkgname, final_optdeps, handler.watcher, self.i18n)

View File

@@ -100,7 +100,7 @@ class ArchPackage(SoftwarePackage):
def can_be_run(self) -> bool: def can_be_run(self) -> bool:
# only returns if there is a desktop entry set for the application to avoid running command-line applications # only returns if there is a desktop entry set for the application to avoid running command-line applications
return bool(self.desktop_entry) return bool(self.command) and bool(self.desktop_entry)
def get_publisher(self): def get_publisher(self):
return self.maintainer return self.maintainer

View File

@@ -1,4 +1,5 @@
import time import time
import traceback
from argparse import Namespace from argparse import Namespace
from threading import Thread from threading import Thread
from typing import List, Set, Type from typing import List, Set, Type
@@ -204,7 +205,16 @@ class GenericSoftwareManager(SoftwareManager):
man = self._get_manager_for(app) man = self._get_manager_for(app)
if man: if man:
return man.install(app, root_password, handler) ti = time.time()
try:
self.logger.info('Installing {}'.format(app))
return man.install(app, root_password, handler)
except:
traceback.print_exc()
return False
finally:
tf = time.time()
self.logger.info('Installation of {} took {} seconds'.format(app, tf - ti))
def get_info(self, app: SoftwarePackage): def get_info(self, app: SoftwarePackage):
man = self._get_manager_for(app) man = self._get_manager_for(app)