https://github.com/b0o/updoot
🎺 Unify the update process for your entire system
https://github.com/b0o/updoot
linux-utility package-management pacman shell-script system-tools update-script
Last synced: 7 months ago
JSON representation
🎺 Unify the update process for your entire system
- Host: GitHub
- URL: https://github.com/b0o/updoot
- Owner: b0o
- License: mit
- Created: 2020-05-05T23:24:54.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-12-31T07:54:46.000Z (10 months ago)
- Last Synced: 2025-03-19T07:04:05.004Z (7 months ago)
- Topics: linux-utility, package-management, pacman, shell-script, system-tools, update-script
- Language: Shell
- Homepage:
- Size: 150 KB
- Stars: 12
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
updoot  [](https://github.com/b0o/updoot/releases) [](https://opensource.org/licenses/MIT)
===```
updoot v0.0.1
https://github.com/b0o/updootUnify the update process for your entire system.
Usage:
updoot [options] [--] [provider-spec ...]Where [provider-spec] is one of:
++provider inclusive: enable this provider in addition to the default providers
+providerprovider exclusive: enable this provider, disabling default providers
--provider ignore this provider from the default providers
-provider (after --, see below)A lone -- indicates the end of the options, thereafter allowing the use of a single leading - to
ignore providers as described above.Options:
-h show brief usage information
-H show detailed usage information
-V show program version
-s enable strict mode
-v enable verbose outputScreencast:
https://asciinema.org/a/191154Environment Variables:
Global:
$UPDOOT_PROVIDERS_ENABLED (string array)
The providers to be enabled by default.$UPDOOT_LOG_MAXAGE (int) [30]
Maximum age of log files in days$UPDOOT_STRICT (bool, 0 or 1) [1]
If true, a failure in any part of any update will end the entire update process.
If false, certain tolerable errors will be treated as warnings.$UPDOOT_VERBOSE (bool, 0 or 1) [0]
If true, output additional status information to stderr.$UPDOOT_CACHE_DIR (directory) [$HOME/.cache/updoot]
Directory to use for log/runtime/temp files.Dependencies:
Global:
- moment-cli (https://www.npmjs.com/package/moment-cli)
- termcolors (https://gist.github.com/08007d77853fcea5ca669e6800844c06)
- git (https://git-scm.com)Available Providers: (* indicates provider is enabled by default)
- yarn
Fast, reliable, and secure dependency management for Node.js
Dependencies:
- yarn (arch-repo: yarn) (https://yarnpkg.com)* archlinux
Updates Arch Linux & performs routine maintenence like updating mirrorlist & managing .pac{new,save} files
Dependencies:
Primary: (at least one; ordered by precedence)
- yay (aur: yay) (https://github.com/Jguer/yay)
- paru (aur: paru) (https://github.com/Morganamilo/paru)
Required:
- pacman
- sudo (arch-repo: sudo) (https://www.sudo.ws)
Optional:
- archlinux-news
Automatically check for unread RSS items from the archlinux.org news feed
Dependencies:
- curl (arch-repo: curl) (https://curl.haxx.se)
- xmlstarlet (arch-repo: xmlstarlet) (https://xmlstar.sourceforge.net)
- reflector (arch-repo: reflector) (https://xyne.archlinux.ca/projects/reflector)
Finds the fastest mirrors and updates mirrorlist for pacman.
- pacdiff (arch-repo: pacman-contrib) (https://git.archlinux.org/pacman-contrib.git/about)
A simple program to merge or remove pacnew/pacsave files.Options:
General:
:h display usage information
:a enable all tasks (default)Enable tasks exclusively:
:n archlinux-news
:y yay
:u paru
:p pacman
:m archlinux-mirrors
:d pacdiffExclude tasks:
:N archlinux-news
:Y yay
:U paru
:P pacman
:M archlinux-mirrors
:D pacdiffEnvironment Variables:
$UPDOOT_ARCHLINUX_MIRROR_COUNTRY (country name) [United States]
Country to select mirrors from.
Must match the format used in /etc/pacman.d/mirrorlist
$UPDOOT_ARCHLINUX_PREFERRED_HELPER ("yay", "paru", "none", or "") [paru]- cabal
A system for building and packaging Haskell libraries and programs
Dependencies:
- cabal-install (arch-repo: cabal-install) (https://github.com/haskell/cabal/blob/master/cabal-install/README.md)- nvim
The Neovim text editor
Dependencies:
- nvim (arch-repo: neovim) (https://neovim.io)Note:
Expects your neovim configuration to define the following functions:
- PluginCleanHeadless()
- PluginUpdateHeadless()
- PluginInstallHeadless()Options:
General:
:h display usage information
:a enable all tasksEnable tasks inclusively:
:c clean
:i installEnable tasks exclusively:
:C clean
:u update
:I installExclude tasks:
:U update* pip
A package manager for the Python programming language
Dependencies:
Primary:
- pip (arch-repo: python-pip) (https://pip.pypa.io)
Optional:
- pipx (https://github.com/pipxproject/pipx)- dummy_user
- nix
A purely functional package manager
Dependencies:
Required:
- nix (aur: nix) (https://nixos.org/nix)
- sudo [if root is needed to manage nix] (arch-repo: sudo) (https://www.sudo.ws)
Optional:
- home-manager (https://github.com/rycee/home-manager)* asdf
Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
Dependencies:
- asdf (aur: asdf-vm) (https://github.com/asdf-vm/asdf)* pnpm
Fast, disk space efficient package manager for Node.js
Dependencies:
- pnpm (aur: pnpm) (https://pnpm.io/)* mise
mise-en-place - The front-end to your dev env
Dependencies:
- mise (https://mise.jdx.dev/)* uv
An extremely fast Python package and project manager, written in Rust.
Dependencies:
- uv (https://docs.astral.sh/uv/)* gem
A package manager for the Ruby programming language
Dependencies:
- gem (arch-repo: rubygems) (https://rubygems.org/)* aqua
Declarative CLI Version Manager. Unify tool versions in teams, projects, and CI. Easy, painless, and secure.
Dependencies:
- aqua (https://aquaproj.github.io/)- cpan
A repository of software modules written in the Perl programming language
Dependencies:
- cpan (arch-repo: perl) (https://www.perl.org)* tpm
Tmux Plugin Manager
Dependencies:
- tmux (arch-repo: tmux) (https://github.com/tmux/tmux)
- tpm (https://github.com/tmux-plugins/tpm)Environment Variables:
$UPDOOT_TPM_PATH [$XDG_CONFIG_HOME/tmux/plugins//tpm]
Path to the tpm plugin's directory
If not set, the tpm provider will try to find your tpm directory.- opam
A package manager for the OCaml programming language
Dependencies:
- opam (arch-repo: opam) (https://opam.ocaml.org/)* npm
A package manager for Node.js / JavaScript
Dependencies:
- npm (arch-repo: npm) (https://npmjs.com)* zsh
A very advanced and programmable command interpreter (shell) for UNIX
Dependencies:
Primary: (at least one)
- oh-my-zsh (https://github.com/ohmyzsh/ohmyzsh)
and/or
- zinit (https://github.com/zdharma/zinit)
Required:
- zsh (arch-repo: zsh) (https://zsh.org)* gh
GitHub CLI extensions.
Dependencies:
- gh (arch-repo: github-cli) (https://github.com/cli/cli)- go
A package manager for the Go programming language
Dependencies:
Primary:
- go (arch-repo: go) (https://golang.org/)
Optional:
- gobin (https://github.com/myitcv/gobin)
The gobin command installs/runs main packages
Required for path@version packages, as described in UPDOOT_GO_GOPACKAGES_PATHEnvironment Variables:
$UPDOOT_GO_GOPACKAGES_PATH (directory) [$HOME/.gopackages]
Path to a Bash script file exporting the following variables:- GO_BIN_PKGS (array) [required]
Array items consist of a Go package path, optionally followed by an @, optionally followed by a version.
A package followed by an @ with no version implies the latest version.
A package not followed by an @ will be fetched with go get rather than gobin- GOBIN (path) [optional]
See https://golang.org/cmd/go/#hdr-Environment_variables
If unset,- GO_UPDATE_BEHAVIOR (string) [default: replace]
One of the following values:- purge: All executables in GOBIN will be removed and new executables
will be moved in. This has the effect of only keeping
executables from packages that appear in GO_BIN_PKGS after an
update, so any executables from manually installed packages or
packages that are removed from the GO_BIN_PKGS array will be
removed.- replace: New executables will replace old ones in GOBIN
* rust
A multi-paradigm system programming language
Dependencies:
Primary: (at least one)
- rustup (arch-repo: rustup) (https://rustup.rs/) (recommended)
Rust toolchain installer
Includes: cargo, rustup
or
- rust (arch-repo: rust) (https://www.rust-lang.org/)
Rust toolchain
Includes: cargo
cargo crates:
- cargo-update (https://github.com/nabijaczleweli/cargo-update)
A cargo subcommand for checking and applying updates to installed executables(c) 2019-2024 Maddison Hellstrom
MIT License (https://mit-license.org)
```