mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
group package updates by bases for correct reporting
This commit is contained in:
parent
71196dc58b
commit
3e2fb7b4e6
@ -213,19 +213,31 @@ class Repository:
|
|||||||
:param packages: list of filenames to run
|
:param packages: list of filenames to run
|
||||||
:return: path to repository database
|
:return: path to repository database
|
||||||
'''
|
'''
|
||||||
for package in packages:
|
def update_single(fn: Optional[str], base: str) -> None:
|
||||||
local = Package.load(package, self.pacman, self.aur_url) # we will use it for status reports
|
if fn is None:
|
||||||
try:
|
self.logger.warning(f'received empty package name for base {base}')
|
||||||
files = self.sign.sign_package(package, local.base)
|
return # suppress type checking, it never can be none actually
|
||||||
|
files = self.sign.sign_package(fn, base)
|
||||||
for src in files:
|
for src in files:
|
||||||
dst = os.path.join(self.paths.repository, os.path.basename(src))
|
dst = os.path.join(self.paths.repository, os.path.basename(src))
|
||||||
shutil.move(src, dst)
|
shutil.move(src, dst)
|
||||||
package_fn = os.path.join(self.paths.repository, os.path.basename(package))
|
package_fn = os.path.join(self.paths.repository, os.path.basename(fn))
|
||||||
self.repo.add(package_fn)
|
self.repo.add(package_fn)
|
||||||
|
|
||||||
|
# we are iterating over bases, not single packages
|
||||||
|
updates: Dict[str, Package] = {}
|
||||||
|
for fn in packages:
|
||||||
|
local = Package.load(fn, self.pacman, self.aur_url)
|
||||||
|
updates.setdefault(local.base, local).packages.update(local.packages)
|
||||||
|
|
||||||
|
for local in updates.values():
|
||||||
|
try:
|
||||||
|
for description in local.packages.values():
|
||||||
|
update_single(description.filename, local.base)
|
||||||
self.reporter.set_success(local)
|
self.reporter.set_success(local)
|
||||||
except Exception:
|
except Exception:
|
||||||
self.reporter.set_failed(local.base)
|
self.reporter.set_failed(local.base)
|
||||||
self.logger.exception(f'could not process {package}', exc_info=True)
|
self.logger.exception(f'could not process {local.base}', exc_info=True)
|
||||||
self.clear_packages()
|
self.clear_packages()
|
||||||
|
|
||||||
return self.repo.repo_path
|
return self.repo.repo_path
|
||||||
|
Loading…
Reference in New Issue
Block a user