* Edit text menu
* Fix alignment
* Scroll functionality
* Fix flake8
* Migrate locales menu
* Fix language translation
* Fix interrupt
* Fix flake8
* Edit mode preset
* Convert print to tui prints
* Fix mypy
* Fix cycling through long menu
* Fix profile view
* Fix scrolling
* Fix scrolling
* Fix mypy
* Fix swiss script
* Display asterisk for passwords
* Corrected a variable usage in the local mirror parsing
* Made sure that curses menu selection on mirrors use url object from mirror.url instead of the class instance
* Fixed mypy type on mirror list
---------
Co-authored-by: Torxed <torxed@archlinux.org>
* fix: refactor clear_vt100_escape_codes
* fix: check for structure being a dict after handling potential parsing errors
* refactor: use short circuit logic than if-elif-else chains
* fix: use or for nullish moutpoint attribute
* fix: better error handling for JSON from urls and paths
* chore: json_stream_to_structure documentation
* refactor: dry up relative and chroot path for custom command scripts
* refactor: use write_text for pathlib.Path object
* refactor: use sets to find intersection instead of filter and list
* refactor: replace loop with dictionary comprehension in preparing luks partition
* refactor: use walrus operator to check if luks_handler exists
* refactor: use read_text and splitlines for potential Path object
* fix: use keepends in splitlines for compatibility
* fix: use keepends in splitlines for compatibility
* feat: set pacman_conf Path as an attribute of installer
* fix: empty string is a part of any string, avoid tuples
* refactor: use iterator patterns to uncomment multilib and testing blocks
* fix: don't json.loads an already loaded structure
* fix: use fstab_path uniformly in genfstab
* fix: remove unused variable matched
* refactor: create separate class to modify pacman.conf in a single pass
* fix: remove unused attribute pacman_conf from installer
* fix: remove unused attribute pacman_conf from installer
* feat: add persist method for pacman.conf, rewrite only when needed
* fix: use path.write_text for locale.conf
* use `or` operator for nullish new_conf
* refactor: Installer.target is always a pathlib.Path object, do not check for string type
* fix: use Optional[str] in function type definition instead of sumtype of str and None
* fix: mypy type annotation
* fix: make flake8 happy
* chore: move pacman config and repo into pacman module
* refactor: use Pacman object instead of Installer's pacstrap method
* fix: break after first sync
* fix: keep old build script for now
* use nullish operator for base_packages and disk_encryption of Installer
* feat: use shutil.which instead of rolling our own implementation
* fix: check for binary only if list is not empty
* fix: import Enum and fix mypy errors
* refactor: use nullish operator for default values
* refactor: linear search for key in Installer._trace_log only once
* fix: use logs instead of the entirety of self._trace_log when searching for key
* refactor: do not copy slice of bytes for search
* refactor: use rfind only once to iterate over logs, do not raise ValueError in clear_vt100_escape_codes since TYPE_CHECKING will take care of it.
* refactor: try decoding trace log before falling back to strigification
* refactor: use an empty dict as default for callbacks in SysCommand.__init__
* refactor: use nullish or operator for slice start and end when not specified
* refactor: use nullish or operator for SysCommand session
* refactor: use pre-existing decode method in __repr__ for SysCommand
* fix: overindentation
* fix: use shallow copy of callbacks to prevent mutating the key-value relationships of the argument dict
* refactor: use truthy value of self.session is not None for json encoding SysCommand
* refactor: directly assign to SysCommand.session in create_session since it short circuits to True if already present
* refactor: use dict.items() instead of manually retrieving the value using the key
* refactor: user_config_to_json method sounds pretty self explanatory
* refactor: store path validity as boolean for return
* refactor: use pathlib.Path.write_text to write configs to destinations
* fix: cannot use assignment expressions with expression
* fix: use config_output.save for saving both config and creds
* refactor: switch dictionary keys and values for options to avoid redundancy
* refactor: use itertools.takewhile to collect locale.gen entries until the empty line
* refactor: use iterative approach for nvidia driver fix
* refactor: install packages if not nvidia
* refactor: return early if no profile is selected
* refactor: use strip to remove commented lines
* fix: install additional packages only when we have a driver
* fix: path with one command is matched as relative to '.'
* fix: remove translation for debug log
---------
Co-authored-by: Anton Hvornum <anton@hvornum.se>
* align with newly merged master
* retry save config
* fix mypy error with str type - this menu with allows return a string
* Removed unused import
---------
Co-authored-by: Anton Hvornum <anton@hvornum.se>
* Save encryption configuration
* Fix deserialization problem
* Added .part_uuid to MapperDev
---------
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
* Changed permissions on the logs stored in /var/log/archinstall. Also cleaned up one of the saves to have the same syntax as the others
* Tweaked secondary encryption password detection logic, as it wouldn't take it from the main arguments[] otherwise.
* Changed permission on cmd_output.txt
* Changed permission on cmd_history.txt
* Added a HSM menu entry, but also a safety check to make sure a FIDO device is connected
* flake8 complaints
* Adding FIDO lookup using cryptenroll listing
* Added systemd-cryptenroll --fido2-device=list
* Removed old _select_hsm call
* Fixed flake8 complaints
* Added support for locking and unlocking with a HSM
* Removed hardcoded paths in favor of PR merge
* Removed hardcoded paths in favor of PR merge
* Fixed mypy complaint
* Flake8 issue
* Added sd-encrypt for HSM and revert back to encrypt when HSM is not used (stability reason)
* Added /etc/vconsole.conf and tweaked fido2_enroll() to use the proper paths
* Spelling error
* Using UUID instead of PARTUUID when using HSM. I can't figure out how to get sd-encrypt to use PARTUUID instead. Added a Partition().part_uuid function. Actually renamed .uuid to .part_uuid and created a .uuid instead.
* Adding missing package libfido2 and removed tpm2-device=auto as it overrides everything and forces password prompt to be used over FIDO2, no matter the order of the options.
* Added some notes to clarify some choices.
* Had to move libfido2 package install to later in the chain, as there's not even a base during mounting :P
* Add new save config menu option
* Update
* Fixed issue with merging
* Fixed merge issue (I think)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
* Created a standard function to show/save the config parameters
* flake8 complains
* Correct definition of btrfs standard layout
* Solve issue #936
* Moved output_configs to lib/configuration.py