Add core.cli with argparse-based install/remove/update commands for Klipper,
Moonraker, Mainsail/Fluidd and client configs.
Wire main.py to dispatch to the CLI and fall back to the TUI when no args
are given. Pass CLI arguments through kiauh.sh and skip the update dialog
for non-interactive runs.
Add interactive parameter to MoonrakerSetupService.install/remove/update and
headless tests for the service.
Add unit tests for moonraker utility functions.
Add interactive parameter to KlipperSetupService.install/remove/update so the
CLI can run without prompts.
Make check_user_groups honor the interactive flag and add headless tests.
Replace monolithic client_setup.py, client_config_setup.py and their
remove counterparts with service classes under components/webui_client/services.
Update menus and core install/update menus to call the new services.
Add unit tests for services, client_utils and menu wiring.
Route fs_utils and sys_utils subprocess/filesystem operations through
core.backends so tests can substitute a fake runner or filesystem from one place.
Make create_python_venv, update_python_pip and update_system_package_lists
raise RuntimeError on failure so callers decide whether to fail fast or recover.
Catch apt update failures in UpdateMenu to keep the menu usable.
Introduce core.backends with CommandRunner and FilesystemBackend protocols plus
default subprocess/local filesystem implementations.
Add fake backends in tests.helpers.fake_backends for isolated unit tests.
Add GitHub Actions workflow for running tests with coverage on Python 3.8 and 3.11.
Configure pytest-cov, coverage thresholds and expand testpaths in pyproject.toml.
Update .gitignore for .ruff_cache, .mypy_cache, *.egg-info and .coverage.
- Standardize `str()` wrapping for color-applied strings in various returns.
- Refine type hints for better code clarity and robustness.
- Add null checks for port inputs to prevent potential errors.
- Improve local and remote version comparison by replacing default placeholders with None.
- Update repo and branch logic to handle None values consistently.
- Refactor type hints for better readability and accuracy.
* fix: improve repository parsing logic to handle empty lines and comments more effectively
* fix: update scp submodule so duplicate sections are preserved while editing configs (#735)
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from f5eee99..5bc9e0a
5bc9e0a docs: update README
394dd7b refactor!: improve parsing and writing for config (#5)
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 5bc9e0a50947f1be2f4877a10ab3a632774f82ea
* fix(logging): change warning to error message for config creation failure
* fix(config): improve readability by using descriptive variable names for options
(cherry picked from commit ae0a6b697e)
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 5bc9e0a..eef8861
eef8861 refactor: update type hint for fallback parameter to Any
5d04325 Revert "chore: use Optional instead of | and None instead of _UNSET"
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: eef8861f126ddf84012ac8bed77b467926016d3e
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from eef8861..9c89612
9c89612 fix: correct assignment of raw value in option handling
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 9c896124cf624e25410714649d306001250482f1
* fix: remove unnecessary whitespace in trusted_clients formatting
Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 4a6e5f2..f5eee99
f5eee99 feat: add support for parsing and handling `SAVE_CONFIG` blocks (#4)
8170583 refactor(api)!: `getval` now returns a string, `getvals` returns list of strings
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: f5eee99b0f04717c6bbf30c1256d70ad019223d5
* remove existing simple_config_parser directory
* Squashed 'kiauh/core/submodules/simple_config_parser/' content from commit da22e6a
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: da22e6ad9ca4bc121c39dc3bc6c63175a72e78a2
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from da22e6a..9ae5749
9ae5749 fix: comment out file writing in test
1ac4e3d refactor: improve section writing
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 9ae574930dfe82107a3712c7c72b3aa777588996
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 9ae5749..53e8408
53e8408 fix: do not add a blank line before writing a section header
dc77569 test: add test for removing option before writing
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 53e840853f12318dcac68196fb74c1843cb75808
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 53e8408..4a6e5f2
4a6e5f2 refactor: full rework of the internal storage of the parsed config
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 4a6e5f23cb1f298f0a3efbf042186b16c91763c7
* refactor!: switching repos now offers list of repositories to choose from
this rework aligns more with the feature provided in kiauh v5.
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
---------
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
Adds a new GitHub Actions workflow that:
- Fast-forwards master branch from develop
- Creates and pushes a new release tag
- Requires manual trigger with tag name input
Signed-off-by: Dominik Willner <th33xitus@gmail.com>