Files
topgrade/README.md

75 lines
3.3 KiB
Markdown
Raw Normal View History

2018-06-05 15:58:19 +03:00
# Topgrade [![Travis](https://api.travis-ci.org/r-darwish/topgrade.svg?branch=master)](https://travis-ci.org/r-darwish/topgrade)
2018-05-31 16:27:23 +03:00
![Alt Text](doc/screenshot.gif)
Keeping your system up to date mostly involves invoking more than a single package manager. This
2018-06-10 11:23:44 +03:00
usually results in big shell one-liners saved in your shell history. Topgrade tries to solve this
2018-06-11 16:51:14 +03:00
problem by detecting which tools you use and run their appropriate package managers.
2018-05-31 16:27:23 +03:00
## Installation
2018-06-10 14:42:10 +03:00
Arch Linux users can use the [AUR](https://aur.archlinux.org/packages/topgrade/) package.
Other systems users can either use `cargo install` or use the compiled binaries from the release page.
2018-05-31 16:27:23 +03:00
## Usage
2018-06-11 16:51:14 +03:00
Just run `topgrade`. It will run the following steps:
* Run the system package manager:
* *Arch*: Run [yay](https://github.com/Jguer/yay) or fall back to pacman
* *CentOS/RHEL*: Run `yum upgrade`
* *Fedora* - Run `dnf upgrade`
* *Debian/Ubuntu*: Run `apt update && apt dist-upgrade`
2018-06-28 09:01:27 +03:00
* *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew
* *Windows*: Upgrade all [Chocolatey](https://chocolatey.org/) packages
2018-05-31 16:27:23 +03:00
* Check if the following paths are tracked by Git. If so, pull them:
* ~/.emacs.d (Should work whether you use [Spacemacs](http://spacemacs.org/) or a custom configuration)
* ~/.zshrc
* [~/.oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
* ~/.tmux
2018-06-11 11:38:25 +03:00
* ~/.config/fish/config.fish
* Custom defined paths
2018-06-11 16:51:14 +03:00
* *Unix*: Run [zplug](https://github.com/zplug/zplug) update
2018-05-31 16:27:23 +03:00
* *Unix*: Upgrade tmux plugins with [TPM](https://github.com/tmux-plugins/tpm)
* Update Rustup by running `rustup update`. This will also attempt to run `rustup self update` when Rustup is installed inside the home directory.
2018-06-11 16:51:14 +03:00
* Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update)
2018-05-31 16:27:23 +03:00
* Upgrade Emacs packages
2018-06-07 08:51:16 +03:00
* Upgrade Vim packages. Works with the following plugin frameworks:
* [NeoBundle](https://github.com/Shougo/neobundle.vim)
* [Vundle](https://github.com/VundleVim/Vundle.vim)
* [Plug](https://github.com/junegunn/vim-plug)
2018-06-06 11:29:55 +03:00
* Upgrade NPM globally installed packages
* Upgrade Atom packages
2018-06-14 13:24:52 +03:00
* *Linux*: Update Flatpak packages
* *Linux*: Update snap packages
2018-06-11 16:51:14 +03:00
* *Linux*: Run [fwupdmgr](https://github.com/hughsie/fwupd) to show firmware upgrade. (View
only. No upgrades will actually be performed)
* Run custom defined commands
* Final stage
* *Linux*: Run [needrestart](https://github.com/liske/needrestart)
* *macOS*: Upgrade App Store applications
2018-06-20 21:05:49 +03:00
## Flags
* `-t/--tmux` - Topgrade will launch itself in a new tmux session. This flag has no effect if
Topgrade already runs inside tmux. This is useful when using topgrade on remote systems.
## Customization
You can place a configuration file at `~/.config/topgrade.toml`. Here's an example:
``` toml
git_repos = [
"~/dev/topgrade",
]
2018-06-20 20:26:08 +03:00
[pre_commands]
"Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"
[commands]
"Python Environment" = "~/dev/.env/bin/pip install -i https://pypi.python.org/simple -U --upgrade-strategy eager jupyter"
```
2018-06-20 20:26:08 +03:00
* `git_repos` - A list of custom Git repositories to pull
* `pre_commands` - Commands to execute before starting any action. If any command fails, Topgrade
will not proceed
* `commands` - Custom upgrade steps. If any command fails it will be reported in the summary as all
upgrade steps are reported, but it will not cause Topgrade to stop.