From 2db2123c703a189738e517b210b92d4fdce42410 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Fri, 20 Feb 2026 04:02:58 +0000
Subject: [PATCH] Refresh repos with pacman for deps
---
src/archrepobuild/builder.py | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/archrepobuild/builder.py b/src/archrepobuild/builder.py
index ea5130c..1445c5b 100644
--- a/src/archrepobuild/builder.py
+++ b/src/archrepobuild/builder.py
@@ -10,7 +10,9 @@
from enum import Enum
from pathlib import Path
from concurrent.futures import ProcessPoolExecutor
-from typing import Any
+from typing import Any, TYPE_CHECKING
+if TYPE_CHECKING:
+ from archrepobuild.repo import RepoManager
from archrepobuild.aur import AURClient
from archrepobuild.config import Config, PackageOverride
@@ -153,15 +155,18 @@
self,
config: Config,
aur_client: AURClient,
+ repo: RepoManager | None = None,
):
"""Initialize builder.
Args:
config: Application configuration
aur_client: AUR client for package info
+ repo: Optional repository manager for incremental registration
"""
self.config = config
self.aur_client = aur_client
+ self.repo = repo
self.resolver = DependencyResolver(aur_client)
self._lock_dir = config.repository.build_dir / ".locks"
self._executor: ProcessPoolExecutor | None = None
@@ -523,7 +528,13 @@
final_results.append(result)
- if result.status == BuildStatus.FAILED:
+ if result.status == BuildStatus.SUCCESS:
+ if self.repo:
+ logger.info(f"Adding {pkg_name} to repository")
+ self.repo.add_packages(result)
+ # Refresh resolver cache to recognize the newly added package
+ self.resolver._refresh_pacman_cache(sync=True)
+ elif result.status == BuildStatus.FAILED:
logger.error(f"Failed to process {pkg_name}, aborting")
if pkg_name == package:
return result
--
Gitblit v1.10.0