Skip to content
Merged
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
10 changes: 5 additions & 5 deletions archinstall/default_profiles/desktop.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ def default_greeter_type(self) -> GreeterType | None:

return None

def _do_on_select_profiles(self) -> None:
async def _do_on_select_profiles(self) -> None:
for profile in self.current_selection:
profile.do_on_select()
await profile.do_on_select()

@override
def do_on_select(self) -> SelectResult:
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
Expand All @@ -69,7 +69,7 @@ def do_on_select(self) -> SelectResult:
group = MenuItemGroup(items, sort_items=True, sort_case_sensitive=False)
group.set_selected_by_value(self.current_selection)

result = Selection[Self](
result = await Selection[Self](
group,
multi=True,
allow_reset=True,
Expand All @@ -80,7 +80,7 @@ def do_on_select(self) -> SelectResult:
match result.type_:
case ResultType.Selection:
self.current_selection = result.get_values()
self._do_on_select_profiles()
await self._do_on_select_profiles()
return SelectResult.NewSelection
case ResultType.Skip:
return SelectResult.SameSelection
Expand Down
8 changes: 4 additions & 4 deletions archinstall/default_profiles/desktops/hyprland.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def services(self) -> list[str]:
return [pref]
return []

def _select_seat_access(self) -> None:
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give Hyprland access to your hardware') + '\n'
Expand All @@ -56,7 +56,7 @@ def _select_seat_access(self) -> None:
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)

result = Selection[SeatAccess](
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
Expand All @@ -66,5 +66,5 @@ def _select_seat_access(self) -> None:
self.custom_settings['seat_access'] = result.get_value().value

@override
def do_on_select(self) -> None:
self._select_seat_access()
async def do_on_select(self) -> None:
await self._select_seat_access()
8 changes: 4 additions & 4 deletions archinstall/default_profiles/desktops/labwc.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def services(self) -> list[str]:
return [pref]
return []

def _select_seat_access(self) -> None:
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give labwc access to your hardware') + '\n'
Expand All @@ -53,7 +53,7 @@ def _select_seat_access(self) -> None:
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)

result = Selection[SeatAccess](
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
Expand All @@ -63,5 +63,5 @@ def _select_seat_access(self) -> None:
self.custom_settings['seat_access'] = result.get_value().value

@override
def do_on_select(self) -> None:
self._select_seat_access()
async def do_on_select(self) -> None:
await self._select_seat_access()
8 changes: 4 additions & 4 deletions archinstall/default_profiles/desktops/niri.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def services(self) -> list[str]:
return [pref]
return []

def _select_seat_access(self) -> None:
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give niri access to your hardware') + '\n'
Expand All @@ -61,7 +61,7 @@ def _select_seat_access(self) -> None:
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)

result = Selection[SeatAccess](
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
Expand All @@ -71,5 +71,5 @@ def _select_seat_access(self) -> None:
self.custom_settings['seat_access'] = result.get_value().value

@override
def do_on_select(self) -> None:
self._select_seat_access()
async def do_on_select(self) -> None:
await self._select_seat_access()
8 changes: 4 additions & 4 deletions archinstall/default_profiles/desktops/sway.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def services(self) -> list[str]:
return [pref]
return []

def _select_seat_access(self) -> None:
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give Sway access to your hardware') + '\n'
Expand All @@ -63,7 +63,7 @@ def _select_seat_access(self) -> None:
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)

result = Selection[SeatAccess](
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
Expand All @@ -73,5 +73,5 @@ def _select_seat_access(self) -> None:
self.custom_settings['seat_access'] = result.get_value().value

@override
def do_on_select(self) -> None:
self._select_seat_access()
async def do_on_select(self) -> None:
await self._select_seat_access()
2 changes: 1 addition & 1 deletion archinstall/default_profiles/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ def json(self) -> dict[str, str]:
"""
return {}

def do_on_select(self) -> SelectResult | None:
async def do_on_select(self) -> SelectResult | None:
"""
Hook that will be called when a profile is selected
"""
Expand Down
4 changes: 2 additions & 2 deletions archinstall/default_profiles/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def __init__(self, current_value: list[Self] = []):
)

@override
def do_on_select(self) -> SelectResult:
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
Expand All @@ -36,7 +36,7 @@ def do_on_select(self) -> SelectResult:
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(self.current_selection)

result = Selection[Self](
result = await Selection[Self](
group,
allow_reset=True,
allow_skip=True,
Expand Down
24 changes: 12 additions & 12 deletions archinstall/lib/applications/application_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ def __init__(
)

@override
def run(self) -> ApplicationConfiguration:
super().run()
async def show(self) -> ApplicationConfiguration | None:
_ = await super().show()
return self._app_config

def _define_menu_options(self) -> list[MenuItem]:
Expand Down Expand Up @@ -116,13 +116,13 @@ def _prev_firewall(self, item: MenuItem) -> str | None:
return None


def select_power_management(preset: PowerManagementConfiguration | None = None) -> PowerManagementConfiguration | None:
async def select_power_management(preset: PowerManagementConfiguration | None = None) -> PowerManagementConfiguration | None:
group = MenuItemGroup.from_enum(PowerManagement)

if preset:
group.set_focus_by_value(preset.power_management)

result = Selection[PowerManagement](
result = await Selection[PowerManagement](
group,
allow_skip=True,
allow_reset=True,
Expand All @@ -137,11 +137,11 @@ def select_power_management(preset: PowerManagementConfiguration | None = None)
return None


def select_bluetooth(preset: BluetoothConfiguration | None) -> BluetoothConfiguration | None:
async def select_bluetooth(preset: BluetoothConfiguration | None) -> BluetoothConfiguration | None:
header = tr('Would you like to configure Bluetooth?') + '\n'
preset_val = preset.enabled if preset else False

result = Confirmation(
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
Expand All @@ -156,11 +156,11 @@ def select_bluetooth(preset: BluetoothConfiguration | None) -> BluetoothConfigur
raise ValueError('Unhandled result type')


def select_print_service(preset: PrintServiceConfiguration | None) -> PrintServiceConfiguration | None:
async def select_print_service(preset: PrintServiceConfiguration | None) -> PrintServiceConfiguration | None:
header = tr('Would you like to configure the print service?') + '\n'
preset_val = preset.enabled if preset else False

result = Confirmation(
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
Expand All @@ -176,14 +176,14 @@ def select_print_service(preset: PrintServiceConfiguration | None) -> PrintServi
raise ValueError('Unhandled result type')


def select_audio(preset: AudioConfiguration | None = None) -> AudioConfiguration | None:
async def select_audio(preset: AudioConfiguration | None = None) -> AudioConfiguration | None:
items = [MenuItem(a.value, value=a) for a in Audio]
group = MenuItemGroup(items)

if preset:
group.set_focus_by_value(preset.audio)

result = Selection[Audio](
result = await Selection[Audio](
group,
header=tr('Select audio configuration'),
allow_skip=True,
Expand All @@ -198,13 +198,13 @@ def select_audio(preset: AudioConfiguration | None = None) -> AudioConfiguration
raise ValueError('Unhandled result type')


def select_firewall(preset: FirewallConfiguration | None = None) -> FirewallConfiguration | None:
async def select_firewall(preset: FirewallConfiguration | None = None) -> FirewallConfiguration | None:
group = MenuItemGroup.from_enum(Firewall)

if preset:
group.set_focus_by_value(preset.firewall)

result = Selection[Firewall](
result = await Selection[Firewall](
group,
allow_skip=True,
allow_reset=True,
Expand Down
18 changes: 10 additions & 8 deletions archinstall/lib/args.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from archinstall.lib.plugins import load_plugin
from archinstall.lib.translationhandler import Language, tr, translation_handler
from archinstall.lib.version import get_version
from archinstall.tui.ui.components import tui


@p_dataclass
Expand Down Expand Up @@ -491,16 +492,17 @@ def _process_creds_data(self, creds_data: str) -> dict[str, Any] | None:
debug(f'Error decrypting credentials file: {err}')
raise err from err
else:
incorrect_password = False
header = tr('Enter credentials file decryption password')
wrong_pwd_text = tr('Incorrect password')
prompt = header

while True:
prompt = f'{header}\n\n' + tr('Incorrect password') if incorrect_password else ''

decryption_pwd = get_password(
header=prompt,
allow_skip=False,
skip_confirmation=True,
decryption_pwd: Password | None = tui.run(
lambda p=prompt: get_password( # type: ignore[misc]
header=p,
allow_skip=False,
skip_confirmation=True,
)
)

if not decryption_pwd:
Expand All @@ -512,7 +514,7 @@ def _process_creds_data(self, creds_data: str) -> dict[str, Any] | None:
except ValueError as err:
if 'Invalid password' in str(err):
debug('Incorrect credentials file decryption password')
incorrect_password = True
prompt = f'{header}' + f'\n\n{wrong_pwd_text}'
else:
debug(f'Error decrypting credentials file: {err}')
raise err from err
Expand Down
18 changes: 9 additions & 9 deletions archinstall/lib/authentication/authentication_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ def __init__(self, preset: AuthenticationConfiguration | None = None):
)

@override
def run(self) -> AuthenticationConfiguration | None:
return super().run()
async def show(self) -> AuthenticationConfiguration | None:
return await super().show()

def _define_menu_options(self) -> list[MenuItem]:
return [
Expand All @@ -56,9 +56,9 @@ def _define_menu_options(self) -> list[MenuItem]:
),
]

def _create_user_account(self, preset: list[User] | None = None) -> list[User]:
async def _create_user_account(self, preset: list[User] | None = None) -> list[User]:
preset = [] if preset is None else preset
users = select_users(preset=preset)
users = await select_users(preset=preset)
return users

def _prev_users(self, item: MenuItem) -> str | None:
Expand Down Expand Up @@ -99,12 +99,12 @@ def _prev_u2f_login(self, item: MenuItem) -> str | None:
return None


def select_root_password() -> Password | None:
password = get_password(header=tr('Enter root password'), allow_skip=True)
async def select_root_password() -> Password | None:
password = await get_password(header=tr('Enter root password'), allow_skip=True)
return password


def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfiguration | None:
async def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfiguration | None:
devices = Fido2.get_fido2_devices()
if not devices:
return None
Expand All @@ -118,7 +118,7 @@ def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfigurat
if preset is not None:
group.set_selected_by_value(preset.u2f_login_method)

result = Selection[U2FLoginMethod](
result = await Selection[U2FLoginMethod](
group,
allow_skip=True,
allow_reset=True,
Expand All @@ -129,7 +129,7 @@ def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfigurat
u2f_method = result.get_value()
header = tr('Enable passwordless sudo?')

result_sudo = Confirmation(
result_sudo = await Confirmation(
header=header,
allow_skip=True,
preset=False,
Expand Down
Loading
Loading