topgrade 0.1.0

Upgrade all the things
topgrade-0.1.0 is not a library.
Visit the last successful build: topgrade-14.0.1

Topgrade

Alt Text

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. Topgrades tries to solve this problem by detecting which tools you use and invoke their appropriate package managers.

Installation

Use cargo install to install it from Github. I'll post precompiled binaries in the future.

Usage

Just invoke topgrade. It will invoke the following steps:

  • Check if the following paths are tracked by Git. If so, pull them:

    • ~/.emacs.d (Should work whether you use Spacemacs or a custom configuration)
    • ~/.zshrc
    • ~/.oh-my-zsh
    • ~/.tmux
  • Unix: Invoke zplug update

  • Unix: Upgrade tmux plugins with TPM

  • Invoke Cargo install-update

  • Upgrade Emacs packages

  • Linux: Invoke the system package manager:

    • Arch: Invoke yay or fall back to pacman
    • Redhat based: Invoke yum upgrade
    • Debian based: Invoke apt update && apt dist-upgrade
  • Linux: Run needrestart

  • macOS: Upgrade Homebrew packages

  • macOS: Upgrade App Store applications