Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

r-darwish/topgrade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 30, 2021
27a3d37 · Jan 30, 2021
Jul 20, 2020
Feb 27, 2020
Jul 9, 2020
Jan 30, 2021
May 29, 2018
Nov 19, 2019
Jan 30, 2021
Jan 30, 2021
Nov 21, 2018
Aug 3, 2020
May 14, 2019
Feb 9, 2019
Feb 26, 2020
Dec 26, 2020
Jul 3, 2018
Feb 29, 2020

Repository files navigation

Topgrade

Travis AppVeyor GitHub release Crates.io AUR homebrew

Demo

Keeping your system up to date mostly involves invoking more than a single package manager. This usually results in big shell one-liners saved in your shell history. Topgrade tries to solve this problem by detecting which tools you use and run their appropriate package managers.

Installation

Arch Linux users can use the AUR package.

On NixOS, use the topgrade package in nixpkgs.

macOS users can install topgrade via Homebrew or MacPorts.

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 isn't guaranteed to work on Rust versions older than the latest stable release. If you intend to install Topgrade using Cargo then you should either install Rust using rustup or use a distribution which ships the latest version of Rust, such as Arch Linux.

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:

  • macOS - ~/.config/topgrade.toml
  • Windows - %APPDATA%/topgrade.toml
  • Other Unix systems - ~/.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 execute Topgrades on these remote hosts. To limit the execution only to specific hosts use the --remote-host-limit parameter.