mirror of https://github.com/Chizi123/Arch-autobuild-repo.git

Joel Grunbaum
22 hours ago 2ba5d0d287204c85e00ff1b5bd590862ce8768ee
Update repos when building dependencies
2 files modified
19 ■■■■ changed files
src/archrepobuild/builder.py 15 ●●●● patch | view | raw | blame | history
src/archrepobuild/cli.py 4 ●●● patch | view | raw | blame | history
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()
            elif result.status == BuildStatus.FAILED:
                logger.error(f"Failed to process {pkg_name}, aborting")
                if pkg_name == package:
                    return result
src/archrepobuild/cli.py
@@ -124,9 +124,8 @@
    async def _add() -> None:
        async with AURClient() as aur:
            async with Builder(config, aur) as builder:
                repo = RepoManager(config)
            async with Builder(config, aur, repo=repo) as builder:
                results = []
                for package in packages:
                    console.print(f"[bold blue]Adding package:[/] {package}")
@@ -134,7 +133,6 @@
                    results.append(result)
                    if result.status == BuildStatus.SUCCESS:
                        repo.add_packages(result)
                        console.print(f"[green]✓[/] {package} processed successfully")
                    elif result.status == BuildStatus.SKIPPED:
                        console.print(f"[yellow]⏭[/] {package} skipped (already in managed repository)")