* Remove the `sys-info` crate
It offers much more features than we currently use.
Additionally, it was preventing me to cross-compile for NetBSD.
Since we were just using the `hostname()` function from the crate,
I went ahead and stole it.
* Add NetBSD target
* Fix FreeBSD clippy warnings
* Closes#150 please disable distrobox by default (#151)
* Check if distrobox exists before running step
* Improve help prompt value names (#153)
* 159 self update error message with standalone versions (#161)
* Rename back to topgrade
* Bugfix Version bump
* Changes reference to topgrade-rs in self-update
* Fixes distrobox errors (#160)
* Rename back to topgrade
* Bugfix Version bump
* Check if distrobox exists before running step
* Fixed sitrobox and version bump
* Version bump to 10.1.2
Co-authored-by: Marcin Puc <tranzystorek.io@protonmail.com>
* Quote arguments when executing in a shell
Fixes#107
* Parse quotes in `tmux_arguments`
This makes it possible to encode spaces in arguments. Maybe the config
value should be an array instead?
* Print error causes
Co-authored-by: Thomas Schönauer <37108907+DottoDev@users.noreply.github.com>
* Adds Archlinux Aura Package Manager support
* Added config support
* Fixes/adds config for aura
* changes aura arguments
* Let Aura only use sudo
* Corrects wrong order of commands
* Added new step: guix (basic support)
* Fixed clippy errors and better practice, Thanks To guidence from @enchant97 <Leo Spratt>
* Removed accidental swp file, as pointed out by @strangelittlemonkey in pull request #982
Authored-by: James Clarke <james@james-clarke.ynh.fr>
Approved-by: Thomas Schönauer <t.schoenauer@hgs-wt.at>
* containers: Pull newer versions of containers
Allows topgrade to update a users containers. It will automatically skip
containers which come from the `localhost` repo as these are self-built.
Respects the version number the containers were initially checked out
with in order not to introduce semver-breaking changes.
Works with podman and docker.
* topgrade: Add 'containers' step
* containers: Ignore some errors for docker
This patch is needed to achieve compatibility between docker and podman.
In particular, docker doesn't store/tell the user from which repository
(i.e. `hub.docker.com`, or `registry.fedoraproject.org`) a container
originates. This has the side-effect, that self-built containers cannot
be distinguished from publicly available containers. Therefore this
patch introduces an exception to the error handling when pulling, by
scanning the output of the `docker pull` command. If it finds the
`registry does not exist` substring in the output, it will skip the
container but **NOT** consider the whole update step failed.
* containers: Skip '<none>' containers
that result from either intermediate products of a container build or
when images are dangling.
* steps: containers: simplify error handling
And don't return errors from within the "unknown container registry"
handling, since that would immediately terminate the whole update which
isn't intended.
* 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>
* Re-add the Go step via go-global-update
go-global-update (https://github.com/Gelio/go-global-update) is a small
tool to update all executables installed in a user's GOBIN, effectively
providing a `go get -u all` replacement for Go 1.16+.
Since it appears that Go will not be receiving a built-in way to do this
in the near future, this could be a good option in the meantime.
* Skip silently if go-global-update is not present