* fix(os) consider Fedora Kinoite to be the Fedora Silverblue distribution
* fix(os) support additional Fedora immutable variants
Rename FedoraSilverblue Distribution to FedoraImmutable. Add test cases for Onyx, Sericea and Silverblue. Rename upgrade method to match distribution.
Fixes#637
This commit introduces conditional logic to the `run_pipx_update` function that checks the installed version of pipx. If the version is 1.4.0 or higher, the `--quiet` argument is added to the `pipx upgrade-all` command to suppress non-critical output during the upgrade process, adhering to the new feature introduced in pipx 1.4.0 as per the documentation (https://pipx.pypa.io/stable/docs/#pipx-upgrade-all). This change aims to make the upgrade process less verbose and more manageable in automated scripts or CI/CD pipelines where log brevity is beneficial.
Make `nix upgrade-nix` a separate step
Also check that Nix can be upgraded before running `nix upgrade-nix` to
work around a bug.
See: <https://github.com/NixOS/nix/issues/5473>
* Remove unhelpful information from errors
Before:
```
Git repositories failed:
0: error: cannot pull with rebase: You have unstaged changes.
error: Please commit or stash them.
0:
Location:
src/steps/git.rs:39
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
```
After:
```
Git repositories failed:
0: Failed to pull /Users/wiggles/.dotfiles
1: error: cannot pull with rebase: You have unstaged changes.
error: Please commit or stash them.
Location:
src/steps/git.rs:39
```
* Improve git_repos errors
This removes the extra blank "0:" line at the end of the error, doesn't
print the error message twice, and provides the repo path in the error
message.
`nix upgrade-nix` can be used on any platform except NixOS where `nix`
is available.
Also use `nix profile upgrade --verbose` because the non-verbose mode
doesn't print anything on stdout.
* Add assume-yes options to most Linux managers
Add `assume-yes` to :
- SUSE (Micro) - TW (`zypper`)
- PCLinux OS (`apt`)
- Solus (`eopkg`)
- `pacdef`
- Clear Linux (`swupd`)
steps/toolbx: Don't send notification
after finishing execution in the toolbx step, and don't perform another
self-update (because the application will already have done that).