* steps: toolbox: Add module to upgrade toolboxes This adds a module to upgrade all toolboxes found on a host system. [Toolbox][1] (More recently: `toolbx`) is a tool that easily provides mutable, containerized command line environments. It is a means to work and develop in a mutable environment on immutable operating systems such as Fedora Silverblue, CoreOS, Kinoite and much more. However, it is not limited to these use cases. The integration into topgrade works as follows: Toolbx makes many of the hosts folders available form inside the toolbx container by default. In particular, all of the hosts filesystem is mapped under `/run/host`. This module exploits this fact by: - Gathering a list of toolboxes available on the host that runs `topgrade` - Executing `toolbox run` for each of these toolboxes to run a command inside the toolboxes, **using the executing `topgrade` executable with the `--only system` arguments** [1]: https://containertoolbx.org/ * toolbx: Integrate toolbx into the application * Toolbx is Linux specific Co-authored-by: Roey Darwish Dror <roey.ghost@gmail.com>
Keeping your system up to date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, topgrade detects which tools you use and runs the appropriate commands to update them.
Installation
Other systems users can either use cargo install or use the compiled binaries from the release page.
The compiled binaries contain a self-upgrading feature.
Topgrade requires Rust 1.51 or above.
Usage
Just run topgrade.
See the wiki for the list of things Topgrade supports.
Customization
See config.example.toml for an example configuration file.
Configuration path
The configuration should be placed in the following paths depending by the operating system:
- Windows -
%APPDATA%/topgrade.toml - macOS and other Unix systems -
${XDG_CONFIG_HOME:-~/.config}/topgrade.toml
Remote execution
You can specify a key called remote_topgrades in the configuration file.
This key should contain a list of hostnames that have topgrade installed on them.
Topgrade will use ssh to run topgrade on remote hosts before acting locally.
To limit the execution only to specific hosts use the --remote-host-limit parameter.

