From 8dfb1666d8f5f88681c8695d653af54e588f5c20 Mon Sep 17 00:00:00 2001 From: h8d13 Date: Fri, 26 Dec 2025 11:34:39 +0100 Subject: [PATCH 1/6] add resume/abort features --- archinstall/lib/configuration.py | 61 ++++++++++++++++++++++++++++++++ archinstall/lib/global_menu.py | 49 +++++++++++++++++++++++-- archinstall/scripts/guided.py | 55 ++++++++++++++++++++++++++-- 3 files changed, 160 insertions(+), 5 deletions(-) diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index 63b68b9ce4..e676afa36c 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -2,6 +2,7 @@ import readline import stat from pathlib import Path +from typing import Any from archinstall.lib.translationhandler import tr from archinstall.tui.curses_menu import SelectMenu, Tui @@ -242,3 +243,63 @@ def preview(item: MenuItem) -> str | None: config_output.save_user_creds(dest_path, password=enc_password) case 'all': config_output.save(dest_path, creds=True, password=enc_password) + + +def has_saved_config() -> bool: + """Check if there's a saved config in /var/log/archinstall""" + config_file = logger.directory / 'user_configuration.json' + return config_file.exists() + + +def load_saved_config() -> dict[str, Any] | None: + """Load saved config and credentials from /var/log/archinstall""" + try: + config_data: dict[str, Any] = {} + + # Load main config + config_file = logger.directory / 'user_configuration.json' + if config_file.exists(): + with open(config_file) as f: + config_data.update(json.load(f)) + + # Load credentials if they exist (follows same pattern as args.py) + creds_file = logger.directory / 'user_credentials.json' + if creds_file.exists(): + with open(creds_file) as f: + creds_data = json.load(f) + config_data.update(creds_data) + + return config_data if config_data else None + + except Exception as e: + print(f'Failed to load saved config: {e}') + return None + + +def auto_save_config(config: ArchConfig) -> tuple[bool, list[str]]: + """Automatically save config to /var/log/archinstall without prompts + + Returns: + tuple[bool, list[str]]: (success, list of saved files) + """ + try: + config_output = ConfigurationOutput(config) + save_path = logger.directory + + # Ensure directory exists + save_path.mkdir(exist_ok=True, parents=True) + + saved_files: list[str] = [] + + # Save configuration + config_output.save_user_config(save_path) + saved_files.append(str(save_path / 'user_configuration.json')) + + # Save credentials + config_output.save_user_creds(save_path, password=None) + saved_files.append(str(save_path / 'user_credentials.json')) + + return True, saved_files + except Exception as e: + debug(f'Failed to auto-save config: {e}') + return False, [] diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 9f7ec10398..d0c2e233ee 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -7,13 +7,16 @@ from archinstall.lib.models.authentication import AuthenticationConfiguration from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutType, EncryptionType, FilesystemType, PartitionModification from archinstall.lib.packages import list_available_packages +from archinstall.tui.curses_menu import SelectMenu from archinstall.tui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.result import ResultType +from archinstall.tui.types import Alignment from .applications.application_menu import ApplicationMenu from .args import ArchConfig from .authentication.authentication_menu import AuthenticationMenu from .bootloader.bootloader_menu import BootloaderMenu -from .configuration import save_config +from .configuration import ConfigurationOutput, auto_save_config, save_config from .hardware import SysInfo from .interactions.general_conf import ( add_number_of_parallel_downloads, @@ -176,7 +179,7 @@ def _get_menu_options(self) -> list[MenuItem]: ), MenuItem( text=tr('Abort'), - action=lambda x: exit(1), + action=self._handle_abort, key=f'{CONFIG_KEY}_abort', ), ] @@ -570,3 +573,45 @@ def _prev_mirror_config(self, item: MenuItem) -> str | None: output += f'{title}:\n\n{table}' return output.strip() + + def _handle_abort(self, preset: None) -> None: + """Handle abort with option to save selections""" + # Sync current selections to config + self.sync_all_to_config() + + items = [ + MenuItem(text=tr('Save selections and abort'), value='save_abort'), + MenuItem(text=tr('Abort without saving'), value='abort_only'), + MenuItem(text=tr('Cancel abort'), value='cancel'), + ] + + group = MenuItemGroup(items) + group.focus_item = group.items[0] # Focus on save option + + result = SelectMenu[str]( + group, + header=tr('You are about to abort the installation.'), + alignment=Alignment.CENTER, + allow_skip=False, + ).run() + + if result.type_ == ResultType.Selection: + choice = result.get_value() + + if choice == 'save_abort': + success, _saved_files = auto_save_config(self._arch_config) + if success: + # Check if credentials are actually present (not just empty JSON) + config_output = ConfigurationOutput(self._arch_config) + creds_json = config_output.user_credentials_to_json() + has_creds = creds_json and creds_json.strip() != '{}' + creds_status = '✓' if has_creds else '✗ (empty)' + print(f'Saved: user_configuration.json ✓, user_credentials.json {creds_status} - Resume by running installer again.') + else: + print('Failed to save selections.') + exit(1) + elif choice == 'abort_only': + exit(1) + # If 'cancel', just return to menu + + return None diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index a91aa4272d..cb1d48fd62 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -4,9 +4,9 @@ from archinstall import SysInfo from archinstall.lib.applications.application_handler import application_handler -from archinstall.lib.args import arch_config_handler +from archinstall.lib.args import ArchConfig, arch_config_handler from archinstall.lib.authentication.authentication_handler import auth_handler -from archinstall.lib.configuration import ConfigurationOutput +from archinstall.lib.configuration import ConfigurationOutput, has_saved_config, load_saved_config from archinstall.lib.disk.filesystem import FilesystemHandler from archinstall.lib.disk.utils import disk_layouts from archinstall.lib.global_menu import GlobalMenu @@ -18,11 +18,59 @@ EncryptionType, ) from archinstall.lib.models.users import User -from archinstall.lib.output import debug, error, info +from archinstall.lib.output import debug, error, info, logger from archinstall.lib.packages.packages import check_package_upgrade from archinstall.lib.profile.profiles_handler import profile_handler from archinstall.lib.translationhandler import tr from archinstall.tui import Tui +from archinstall.tui.curses_menu import SelectMenu +from archinstall.tui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.result import ResultType +from archinstall.tui.types import Alignment + + +def _check_for_saved_config() -> None: + """Check for saved config and offer to resume""" + if not has_saved_config() or arch_config_handler.args.silent: + return + + with Tui(): + items = [ + MenuItem(text=('Resume from saved selections'), value='resume'), + MenuItem(text=('Start fresh'), value='fresh'), + ] + + group = MenuItemGroup(items) + group.focus_item = group.items[0] # Focus on resume + + result = SelectMenu[str]( + group, + header=('Saved configuration found in user_configuration.json.') + '\n' + ('What would you like to do?'), + alignment=Alignment.CENTER, + allow_skip=False, + ).run() + + if result.type_ == ResultType.Selection: + choice = result.get_value() + + if choice == 'resume': + cached_config = load_saved_config() + if cached_config: + try: + new_config = ArchConfig.from_config(cached_config, arch_config_handler.args) + arch_config_handler._config = new_config + print('Saved selections loaded successfully') + except Exception as e: + print(f'Failed to load saved selections: {e}') + elif choice == 'fresh': + # Remove both saved config files + config_file = logger.directory / 'user_configuration.json' + creds_file = logger.directory / 'user_credentials.json' + + if config_file.exists(): + config_file.unlink() + if creds_file.exists(): + creds_file.unlink() def ask_user_questions() -> None: @@ -187,6 +235,7 @@ def perform_installation(mountpoint: Path) -> None: def guided() -> None: if not arch_config_handler.args.silent: + _check_for_saved_config() ask_user_questions() config = ConfigurationOutput(arch_config_handler.config) From 1129aba0d5567af7be553195c76e5e7545525e4a Mon Sep 17 00:00:00 2001 From: h8d13 Date: Fri, 26 Dec 2025 11:39:29 +0100 Subject: [PATCH 2/6] clean yp --- archinstall/lib/configuration.py | 2 +- archinstall/lib/global_menu.py | 8 ++++---- archinstall/scripts/guided.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index e676afa36c..95a5f87113 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -272,7 +272,7 @@ def load_saved_config() -> dict[str, Any] | None: return config_data if config_data else None except Exception as e: - print(f'Failed to load saved config: {e}') + warn(f'Failed to load saved config: {e}') return None diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index d0c2e233ee..43c88d45ac 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -36,7 +36,7 @@ from .models.network import NetworkConfiguration, NicType from .models.packages import Repository from .models.profile import ProfileConfiguration -from .output import FormattedOutput +from .output import FormattedOutput, info, warn from .pacman.config import PacmanConfig from .translationhandler import Language, tr, translation_handler @@ -605,10 +605,10 @@ def _handle_abort(self, preset: None) -> None: config_output = ConfigurationOutput(self._arch_config) creds_json = config_output.user_credentials_to_json() has_creds = creds_json and creds_json.strip() != '{}' - creds_status = '✓' if has_creds else '✗ (empty)' - print(f'Saved: user_configuration.json ✓, user_credentials.json {creds_status} - Resume by running installer again.') + creds_status = 'saved' if has_creds else 'empty' + info(f'Configuration saved: user_configuration.json, user_credentials.json ({creds_status}).') else: - print('Failed to save selections.') + warn('Failed to save selections.') exit(1) elif choice == 'abort_only': exit(1) diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index cb1d48fd62..fd5aa75728 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -59,9 +59,9 @@ def _check_for_saved_config() -> None: try: new_config = ArchConfig.from_config(cached_config, arch_config_handler.args) arch_config_handler._config = new_config - print('Saved selections loaded successfully') + info('Saved selections loaded successfully') except Exception as e: - print(f'Failed to load saved selections: {e}') + error(f'Failed to load saved selections: {e}') elif choice == 'fresh': # Remove both saved config files config_file = logger.directory / 'user_configuration.json' From a64e22d881fef22f69e7ea20567af9167a2b1fe6 Mon Sep 17 00:00:00 2001 From: h8d13 Date: Fri, 26 Dec 2025 11:40:19 +0100 Subject: [PATCH 3/6] rem unused var --- archinstall/lib/global_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 43c88d45ac..01514ba953 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -599,7 +599,7 @@ def _handle_abort(self, preset: None) -> None: choice = result.get_value() if choice == 'save_abort': - success, _saved_files = auto_save_config(self._arch_config) + success, _ = auto_save_config(self._arch_config) if success: # Check if credentials are actually present (not just empty JSON) config_output = ConfigurationOutput(self._arch_config) From 4e702cd75796359d8f295d939d4f0e66f75d9d64 Mon Sep 17 00:00:00 2001 From: h8d13 Date: Fri, 26 Dec 2025 11:49:15 +0100 Subject: [PATCH 4/6] borken logic --- archinstall/lib/global_menu.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 01514ba953..03797bb1b0 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -576,9 +576,6 @@ def _prev_mirror_config(self, item: MenuItem) -> str | None: def _handle_abort(self, preset: None) -> None: """Handle abort with option to save selections""" - # Sync current selections to config - self.sync_all_to_config() - items = [ MenuItem(text=tr('Save selections and abort'), value='save_abort'), MenuItem(text=tr('Abort without saving'), value='abort_only'), @@ -599,6 +596,8 @@ def _handle_abort(self, preset: None) -> None: choice = result.get_value() if choice == 'save_abort': + # Sync current selections to config before saving + self.sync_all_to_config() success, _ = auto_save_config(self._arch_config) if success: # Check if credentials are actually present (not just empty JSON) From a59b6f421d4a4c7a1c10ae742ccdd6626d9e207f Mon Sep 17 00:00:00 2001 From: h8d13 Date: Fri, 26 Dec 2025 11:55:19 +0100 Subject: [PATCH 5/6] shorter desc --- archinstall/scripts/guided.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index fd5aa75728..eb77394b5f 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -45,7 +45,7 @@ def _check_for_saved_config() -> None: result = SelectMenu[str]( group, - header=('Saved configuration found in user_configuration.json.') + '\n' + ('What would you like to do?'), + header=('Saved configuration found.'), alignment=Alignment.CENTER, allow_skip=False, ).run() From 00ef41e3e2dee8e3ae8513691ebbe990544e55a9 Mon Sep 17 00:00:00 2001 From: h8d13 Date: Sat, 27 Dec 2025 10:33:30 +0100 Subject: [PATCH 6/6] Change name of Class Integrate resume behind --debug flag - With --debug: "Save selections and abort", "Abort without saving", "Cancel" - Without --debug: "Abort", "Cancel" --- archinstall/lib/configuration.py | 125 ++++++++++++++--------------- archinstall/lib/global_menu.py | 27 ++++--- archinstall/scripts/guided.py | 12 +-- archinstall/scripts/minimal.py | 4 +- archinstall/scripts/only_hd.py | 4 +- tests/test_configuration_output.py | 6 +- 6 files changed, 92 insertions(+), 86 deletions(-) diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index 95a5f87113..e99d7c0d23 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -17,7 +17,10 @@ from .utils.util import get_password, prompt_dir -class ConfigurationOutput: +class ConfigurationHandler: + _USER_CONFIG_FILENAME = 'user_configuration.json' + _USER_CREDS_FILENAME = 'user_credentials.json' + def __init__(self, config: ArchConfig): """ Configuration output handler to parse the existing @@ -30,8 +33,8 @@ def __init__(self, config: ArchConfig): self._config = config self._default_save_path = logger.directory - self._user_config_file = Path('user_configuration.json') - self._user_creds_file = Path('user_credentials.json') + self._user_config_file = Path(self._USER_CONFIG_FILENAME) + self._user_creds_file = Path(self._USER_CREDS_FILENAME) @property def user_configuration_file(self) -> Path: @@ -122,6 +125,60 @@ def save( if creds: self.save_user_creds(save_path, password=password) + @classmethod + def has_saved_config(cls) -> bool: + config_file = logger.directory / cls._USER_CONFIG_FILENAME + return config_file.exists() + + @classmethod + def load_saved_config(cls) -> dict[str, Any] | None: + try: + config_data: dict[str, Any] = {} + + # Load main config + config_file = logger.directory / cls._USER_CONFIG_FILENAME + if config_file.exists(): + with open(config_file) as f: + config_data.update(json.load(f)) + + # Load credentials + creds_file = logger.directory / cls._USER_CREDS_FILENAME + if creds_file.exists(): + with open(creds_file) as f: + creds_data = json.load(f) + config_data.update(creds_data) + + return config_data if config_data else None + + except Exception as e: + warn(f'Failed to load saved config: {e}') + return None + + def auto_save_config(self) -> tuple[bool, list[str]]: + """Automatically save config to /var/log/archinstall without prompts + + Returns: + tuple[bool, list[str]]: (success, list of saved files) + """ + try: + save_path = logger.directory + save_path.mkdir(exist_ok=True, parents=True) + + saved_files: list[str] = [] + + # Save configuration + self.save_user_config(save_path) + saved_files.append(str(save_path / self._user_config_file)) + + # Save credentials + self.save_user_creds(save_path, password=None) + saved_files.append(str(save_path / self._user_creds_file)) + + return True, saved_files + except Exception as e: + debug(f'Failed to auto-save config: {e}') + return False, [] + def save_config(config: ArchConfig) -> None: def preview(item: MenuItem) -> str | None: @@ -140,7 +197,7 @@ def preview(item: MenuItem) -> str | None: return '\n'.join(output) return None - config_output = ConfigurationOutput(config) + config_output = ConfigurationHandler(config) items = [ MenuItem( @@ -243,63 +300,3 @@ def preview(item: MenuItem) -> str | None: config_output.save_user_creds(dest_path, password=enc_password) case 'all': config_output.save(dest_path, creds=True, password=enc_password) - - -def has_saved_config() -> bool: - """Check if there's a saved config in /var/log/archinstall""" - config_file = logger.directory / 'user_configuration.json' - return config_file.exists() - - -def load_saved_config() -> dict[str, Any] | None: - """Load saved config and credentials from /var/log/archinstall""" - try: - config_data: dict[str, Any] = {} - - # Load main config - config_file = logger.directory / 'user_configuration.json' - if config_file.exists(): - with open(config_file) as f: - config_data.update(json.load(f)) - - # Load credentials if they exist (follows same pattern as args.py) - creds_file = logger.directory / 'user_credentials.json' - if creds_file.exists(): - with open(creds_file) as f: - creds_data = json.load(f) - config_data.update(creds_data) - - return config_data if config_data else None - - except Exception as e: - warn(f'Failed to load saved config: {e}') - return None - - -def auto_save_config(config: ArchConfig) -> tuple[bool, list[str]]: - """Automatically save config to /var/log/archinstall without prompts - - Returns: - tuple[bool, list[str]]: (success, list of saved files) - """ - try: - config_output = ConfigurationOutput(config) - save_path = logger.directory - - # Ensure directory exists - save_path.mkdir(exist_ok=True, parents=True) - - saved_files: list[str] = [] - - # Save configuration - config_output.save_user_config(save_path) - saved_files.append(str(save_path / 'user_configuration.json')) - - # Save credentials - config_output.save_user_creds(save_path, password=None) - saved_files.append(str(save_path / 'user_credentials.json')) - - return True, saved_files - except Exception as e: - debug(f'Failed to auto-save config: {e}') - return False, [] diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 03797bb1b0..00467262d5 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -16,7 +16,7 @@ from .args import ArchConfig from .authentication.authentication_menu import AuthenticationMenu from .bootloader.bootloader_menu import BootloaderMenu -from .configuration import ConfigurationOutput, auto_save_config, save_config +from .configuration import ConfigurationHandler, save_config from .hardware import SysInfo from .interactions.general_conf import ( add_number_of_parallel_downloads, @@ -576,18 +576,25 @@ def _prev_mirror_config(self, item: MenuItem) -> str | None: def _handle_abort(self, preset: None) -> None: """Handle abort with option to save selections""" - items = [ - MenuItem(text=tr('Save selections and abort'), value='save_abort'), - MenuItem(text=tr('Abort without saving'), value='abort_only'), - MenuItem(text=tr('Cancel abort'), value='cancel'), - ] + from .args import arch_config_handler + + items = [] + + # Only show save option in debug mode + if arch_config_handler.args.debug: + items.append(MenuItem(text=tr('Save selections and abort'), value='save_abort')) + items.append(MenuItem(text=tr('Abort without saving'), value='abort_only')) + else: + items.append(MenuItem(text=tr('Abort'), value='abort_only')) + + items.append(MenuItem(text=tr('Cancel'), value='cancel')) group = MenuItemGroup(items) - group.focus_item = group.items[0] # Focus on save option + group.focus_item = group.items[0] # Focus on first option result = SelectMenu[str]( group, - header=tr('You are about to abort the installation.'), + header=tr('Abort the installation? \n'), alignment=Alignment.CENTER, allow_skip=False, ).run() @@ -598,10 +605,10 @@ def _handle_abort(self, preset: None) -> None: if choice == 'save_abort': # Sync current selections to config before saving self.sync_all_to_config() - success, _ = auto_save_config(self._arch_config) + config_output = ConfigurationHandler(self._arch_config) + success, _ = config_output.auto_save_config() if success: # Check if credentials are actually present (not just empty JSON) - config_output = ConfigurationOutput(self._arch_config) creds_json = config_output.user_credentials_to_json() has_creds = creds_json and creds_json.strip() != '{}' creds_status = 'saved' if has_creds else 'empty' diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index eb77394b5f..6ca3bddc25 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -6,7 +6,7 @@ from archinstall.lib.applications.application_handler import application_handler from archinstall.lib.args import ArchConfig, arch_config_handler from archinstall.lib.authentication.authentication_handler import auth_handler -from archinstall.lib.configuration import ConfigurationOutput, has_saved_config, load_saved_config +from archinstall.lib.configuration import ConfigurationHandler from archinstall.lib.disk.filesystem import FilesystemHandler from archinstall.lib.disk.utils import disk_layouts from archinstall.lib.global_menu import GlobalMenu @@ -31,7 +31,9 @@ def _check_for_saved_config() -> None: """Check for saved config and offer to resume""" - if not has_saved_config() or arch_config_handler.args.silent: + if not arch_config_handler.args.debug: + return + if not ConfigurationHandler.has_saved_config() or arch_config_handler.args.silent: return with Tui(): @@ -45,7 +47,7 @@ def _check_for_saved_config() -> None: result = SelectMenu[str]( group, - header=('Saved configuration found.'), + header=('Saved configuration found: \n'), alignment=Alignment.CENTER, allow_skip=False, ).run() @@ -54,7 +56,7 @@ def _check_for_saved_config() -> None: choice = result.get_value() if choice == 'resume': - cached_config = load_saved_config() + cached_config = ConfigurationHandler.load_saved_config() if cached_config: try: new_config = ArchConfig.from_config(cached_config, arch_config_handler.args) @@ -238,7 +240,7 @@ def guided() -> None: _check_for_saved_config() ask_user_questions() - config = ConfigurationOutput(arch_config_handler.config) + config = ConfigurationHandler(arch_config_handler.config) config.write_debug() config.save() diff --git a/archinstall/scripts/minimal.py b/archinstall/scripts/minimal.py index 2c0c26c2f0..f549dfd148 100644 --- a/archinstall/scripts/minimal.py +++ b/archinstall/scripts/minimal.py @@ -2,7 +2,7 @@ from archinstall.default_profiles.minimal import MinimalProfile from archinstall.lib.args import arch_config_handler -from archinstall.lib.configuration import ConfigurationOutput +from archinstall.lib.configuration import ConfigurationHandler from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu from archinstall.lib.disk.filesystem import FilesystemHandler from archinstall.lib.installer import Installer @@ -64,7 +64,7 @@ def _minimal() -> None: disk_config = DiskLayoutConfigurationMenu(disk_layout_config=None).run() arch_config_handler.config.disk_config = disk_config - config = ConfigurationOutput(arch_config_handler.config) + config = ConfigurationHandler(arch_config_handler.config) config.write_debug() config.save() diff --git a/archinstall/scripts/only_hd.py b/archinstall/scripts/only_hd.py index b63ee94072..998895031a 100644 --- a/archinstall/scripts/only_hd.py +++ b/archinstall/scripts/only_hd.py @@ -2,7 +2,7 @@ from archinstall import debug, error from archinstall.lib.args import arch_config_handler -from archinstall.lib.configuration import ConfigurationOutput +from archinstall.lib.configuration import ConfigurationHandler from archinstall.lib.disk.filesystem import FilesystemHandler from archinstall.lib.disk.utils import disk_layouts from archinstall.lib.global_menu import GlobalMenu @@ -60,7 +60,7 @@ def _only_hd() -> None: if not arch_config_handler.args.silent: ask_user_questions() - config = ConfigurationOutput(arch_config_handler.config) + config = ConfigurationHandler(arch_config_handler.config) config.write_debug() config.save() diff --git a/tests/test_configuration_output.py b/tests/test_configuration_output.py index 7d9f1f97cf..08e2628261 100644 --- a/tests/test_configuration_output.py +++ b/tests/test_configuration_output.py @@ -4,7 +4,7 @@ from pytest import MonkeyPatch from archinstall.lib.args import ArchConfigHandler -from archinstall.lib.configuration import ConfigurationOutput +from archinstall.lib.configuration import ConfigurationHandler def test_user_config_roundtrip( @@ -20,7 +20,7 @@ def test_user_config_roundtrip( # as there is no version present in the test environment we'll set it manually arch_config.version = '3.0.2' - config_output = ConfigurationOutput(arch_config) + config_output = ConfigurationHandler(arch_config) test_out_dir = Path('/tmp/') test_out_file = test_out_dir / config_output.user_configuration_file @@ -55,7 +55,7 @@ def test_creds_roundtrip( handler = ArchConfigHandler() arch_config = handler.config - config_output = ConfigurationOutput(arch_config) + config_output = ConfigurationHandler(arch_config) test_out_dir = Path('/tmp/') test_out_file = test_out_dir / config_output.user_credentials_file