From 113988a6aae3be07e6f546823f6b5db4bb19d2cd Mon Sep 17 00:00:00 2001 From: CooperWang0912 Date: Tue, 28 Jul 2026 13:04:13 +0800 Subject: [PATCH] Initial Testing --- archinstall/lib/configuration.py | 17 +++++++++++++++++ archinstall/scripts/guided.py | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index cb6844c3..366a52bc 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -8,6 +8,23 @@ from archinstall.lib.translationhandler import tr from archinstall.tui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.result import ResultType +async def confirm_ufw(config: ArchConfig) -> None: + firewall_config = ArchConfig.app_config.firewall_config + is_ufw = firewall_config and firewall_config.firewall and firewall_config.firewall.value == 'ufw' + if is_ufw and "openssh" in ArchConfig.packages: + header = f'{tr("You have both ufw and OpenSSH in your packages")}. ' + header += tr('Would you like to allow incoming SSH connections through the firewall?') + '\n' + group = MenuItemGroup.yes_no() + + result = await Confirmation( + group=group, + header=header, + allow_skip=False, + preset=True, + ).show() + + if result: + ArchConfig.custom_commands.append("ufw allow OpenSSH") async def confirm_config(config: ArchConfig) -> bool: header = f'{tr("The specified configuration will be applied")}. ' diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index 627a3b75..b7406b79 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -6,7 +6,7 @@ from archinstall.lib.applications.application_handler import ApplicationHandler from archinstall.lib.args import ArchConfig, ArchConfigHandler from archinstall.lib.authentication.authentication_handler import AuthenticationHandler from archinstall.lib.bootloader.utils import validate_bootloader_layout -from archinstall.lib.configuration import confirm_config +from archinstall.lib.configuration import confirm_ufw, confirm_config from archinstall.lib.disk.filesystem import FilesystemHandler from archinstall.lib.disk.utils import disk_layouts from archinstall.lib.general.general_menu import PostInstallationAction, select_post_installation @@ -230,6 +230,7 @@ def main(arch_config_handler: ArchConfigHandler | None = None) -> None: if not arch_config_handler.args.silent: aborted = False + tui.run(lambda: confirm_ufw(arch_config_handler.config)) res: bool = tui.run(lambda: confirm_config(arch_config_handler.config)) if not res: