Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 1 addition & 11 deletions archinstall/lib/global_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration, NicType
from archinstall.lib.models.package_types import DEFAULT_KERNEL
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.pacman import PacmanConfiguration
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.network.network_menu import select_network
Expand Down Expand Up @@ -584,16 +583,7 @@ async def _select_profile(self, current_profile: ProfileConfiguration | None) ->
return await ProfileMenu(preset=current_profile).show()

async def _select_additional_packages(self, preset: list[str]) -> list[str]:
config: MirrorConfiguration | None = self._item_group.find_by_key('mirror_config').value

repositories: set[Repository] = set()
if config:
repositories = set(config.optional_repositories)

return await select_additional_packages(
preset,
repositories=repositories,
)
return await select_additional_packages(preset)

async def _mirror_configuration(self, preset: MirrorConfiguration | None = None) -> MirrorConfiguration | None:
if self._mirror_list_handler is None:
Expand Down
27 changes: 8 additions & 19 deletions archinstall/lib/packages/packages.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from functools import lru_cache

from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.log import debug
from archinstall.lib.menu.helpers import Loading, Notify, Selection
from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup, Repository
from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup
from archinstall.lib.pacman.pacman import Pacman
from archinstall.lib.translationhandler import tr
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
Expand Down Expand Up @@ -62,15 +63,12 @@ def available_package(package: str) -> AvailablePackage | None:


@lru_cache
def list_available_packages(
repositories: tuple[Repository, ...],
) -> dict[str, AvailablePackage]:
def list_available_packages() -> dict[str, AvailablePackage]:
"""
Returns a list of all available packages in the database
"""
packages: dict[str, AvailablePackage] = {}
current_package: list[str] = []
filtered_repos = [repo.value for repo in repositories]

try:
Pacman.run('-Sy')
Expand All @@ -84,8 +82,7 @@ def list_available_packages(
if dec_line.startswith('Validated'):
if current_package:
avail_pkg = _parse_package_output(current_package, AvailablePackage)
if avail_pkg.repository in filtered_repos:
packages[avail_pkg.name] = avail_pkg
packages[avail_pkg.name] = avail_pkg
current_package = []

return packages
Expand Down Expand Up @@ -117,25 +114,17 @@ def _parse_package_output[PackageType: (AvailablePackage, LocalPackage)](
return cls.model_validate(package)


async def select_additional_packages(
preset: list[str] | None = None,
repositories: set[Repository] | None = None,
) -> list[str]:
async def select_additional_packages(preset: list[str] | None = None) -> list[str]:
if preset is None:
preset = []

if repositories is None:
repositories = set()

repositories |= {Repository.Core, Repository.Extra}

respos_text = ', '.join(r.value for r in repositories)
output = tr('Repositories: {}').format(respos_text) + '\n'
repositories = SysCommand('pacman-conf --repo-list').decode().splitlines()
output = tr('Repositories: {}').format(', '.join(repositories)) + '\n'
output += tr('Loading packages...')

result = await Loading[dict[str, AvailablePackage]](
header=output,
data_callback=lambda: list_available_packages(tuple(repositories)),
data_callback=list_available_packages,
).show()

if result.type_ != ResultType.Selection:
Expand Down