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

Joel Grunbaum
yesterday 62161672c010a1ffda4089d330db5197e141da67
src/archrepobuild/cli.py
@@ -117,27 +117,34 @@
@cli.command()
@click.argument("packages", nargs=-1, required=True)
@click.option(
    "--include-repo",
    is_flag=True,
    default=False,
    help="Check managed repository for existing packages (skip if present)",
)
@pass_context
def add(ctx: Context, packages: tuple[str, ...]) -> None:
def add(ctx: Context, packages: tuple[str, ...], include_repo: bool) -> None:
    """Add and build new packages from the AUR."""
    config = ctx.config
    async def _add() -> None:
        async with AURClient() as aur:
            async with Builder(config, aur) as builder:
                repo = RepoManager(config)
            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}")
                    result = await builder.add_package(package)
                    result = await builder.add_package(package, include_repo=include_repo)
                    results.append(result)
                    if result.status == BuildStatus.SUCCESS:
                        repo.add_packages(result)
                        console.print(f"[green]✓[/] {package} added successfully")
                        if len(result.artifacts) > 1:
                            console.print(f"[green]✓[/] {package} processed successfully ({len(result.artifacts)} artifacts registered)")
                        else:
                            console.print(f"[green]✓[/] {package} processed successfully")
                    elif result.status == BuildStatus.SKIPPED:
                        console.print(f"[yellow]⏭[/] {package} skipped (already in official repos or installed)")
                        console.print(f"[yellow]⏭[/] {package} skipped (already in managed repository)")
                    else:
                        console.print(f"[red]✗[/] {package} failed: {result.error}")
@@ -165,8 +172,8 @@
                    resolver = DependencyResolver(aur)
                    for pkg in repo.list_packages():
                        if resolver.is_in_official_repos(pkg.name):
                            console.print(f"[yellow]Removing {pkg.name}[/] (now in official repos)")
                        if resolver.is_in_repos(pkg.name):
                            console.print(f"[yellow]Removing {pkg.name}[/] (now in repositories)")
                            builder.remove_package(pkg.name)
                            repo.remove_package(pkg.name)
                else:
@@ -200,10 +207,10 @@
                    # Ignore debug packages if the regular version is in official repos
                    if pkg.name.endswith("-debug"):
                        base_name = pkg.name[:-6]
                        if resolver.is_in_official_repos(base_name, include_all=all_repos):
                        if resolver.is_in_repos(base_name, include_all=all_repos) or await aur.is_available(base_name):
                            continue
                    if resolver.is_in_official_repos(pkg.name, include_all=all_repos):
                    if resolver.is_in_repos(pkg.name, include_all=all_repos):
                        in_official.append(pkg.name)
                    elif not await aur.is_available(pkg.name):
                        not_in_aur.append(pkg.name)