{"id":17956357,"url":"https://github.com/b0o/updoot","last_synced_at":"2025-03-25T02:31:17.249Z","repository":{"id":88329458,"uuid":"261604868","full_name":"b0o/updoot","owner":"b0o","description":"🎺 Unify the update process for your entire system","archived":false,"fork":false,"pushed_at":"2024-12-31T07:54:46.000Z","size":154,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-19T07:04:05.004Z","etag":null,"topics":["linux-utility","package-management","pacman","shell-script","system-tools","update-script"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b0o.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"b0o","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-05-05T23:24:54.000Z","updated_at":"2024-12-31T07:54:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"bad3fb25-229a-4563-8cd1-5d728f6d2de2","html_url":"https://github.com/b0o/updoot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b0o%2Fupdoot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b0o%2Fupdoot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b0o%2Fupdoot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b0o%2Fupdoot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b0o","download_url":"https://codeload.github.com/b0o/updoot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245385443,"owners_count":20606649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux-utility","package-management","pacman","shell-script","system-tools","update-script"],"created_at":"2024-10-29T10:37:29.683Z","updated_at":"2025-03-25T02:31:17.244Z","avatar_url":"https://github.com/b0o.png","language":"Shell","funding_links":["https://github.com/sponsors/b0o"],"categories":[],"sub_categories":[],"readme":"updoot ![status: alpha](https://img.shields.io/badge/status-alpha-red?style=flat) [![version](https://img.shields.io/github/v/tag/b0o/updoot?style=flat\u0026color=yellow\u0026label=version\u0026sort=semver)](https://github.com/b0o/updoot/releases) [![license: MIT](https://img.shields.io/github/license/b0o/updoot?style=flat\u0026color=green)](https://opensource.org/licenses/MIT)\n===\n\n\n```\nupdoot v0.0.1\nhttps://github.com/b0o/updoot\n\nUnify the update process for your entire system.\n\nUsage:\n  updoot [options] [--] [provider-spec ...]\n\n  Where [provider-spec] is one of:\n    ++provider   inclusive: enable this provider in addition to the default providers\n     +provider\n\n      provider   exclusive: enable this provider, disabling default providers\n\n    --provider   ignore this provider from the default providers\n     -provider   (after --, see below)\n\n  A lone -- indicates the end of the options, thereafter allowing the use of a single leading - to\n  ignore providers as described above.\n\nOptions:\n  -h       show brief usage information\n  -H       show detailed usage information\n  -V       show program version\n  -s       enable strict mode\n  -v       enable verbose output\n\nScreencast:\n  https://asciinema.org/a/191154\n\nEnvironment Variables:\n  Global:\n    $UPDOOT_PROVIDERS_ENABLED (string array)\n      The providers to be enabled by default.\n\n    $UPDOOT_LOG_MAXAGE (int) [30]\n      Maximum age of log files in days\n\n    $UPDOOT_STRICT (bool, 0 or 1) [1]\n      If true, a failure in any part of any update will end the entire update process.\n      If false, certain tolerable errors will be treated as warnings.\n\n    $UPDOOT_VERBOSE (bool, 0 or 1) [0]\n      If true, output additional status information to stderr.\n\n    $UPDOOT_CACHE_DIR (directory) [$HOME/.cache/updoot]\n      Directory to use for log/runtime/temp files.\n\nDependencies:\n  Global:\n     - moment-cli (https://www.npmjs.com/package/moment-cli)\n     - termcolors (https://gist.github.com/08007d77853fcea5ca669e6800844c06)\n     - git (https://git-scm.com)\n\nAvailable Providers: (* indicates provider is enabled by default)\n  - yarn\n    Fast, reliable, and secure dependency management for Node.js\n    Dependencies:\n      - yarn (arch-repo: yarn) (https://yarnpkg.com)\n\n  * archlinux\n    Updates Arch Linux \u0026 performs routine maintenence like updating mirrorlist \u0026 managing .pac{new,save} files\n    Dependencies:\n      Primary: (at least one; ordered by precedence)\n        - yay (aur: yay) (https://github.com/Jguer/yay)\n        - paru (aur: paru) (https://github.com/Morganamilo/paru)\n      Required:\n        - pacman\n        - sudo (arch-repo: sudo) (https://www.sudo.ws)\n      Optional:\n        - archlinux-news\n          Automatically check for unread RSS items from the archlinux.org news feed\n          Dependencies:\n            - curl (arch-repo: curl) (https://curl.haxx.se)\n            - xmlstarlet (arch-repo: xmlstarlet) (https://xmlstar.sourceforge.net)\n        - reflector (arch-repo: reflector) (https://xyne.archlinux.ca/projects/reflector)\n          Finds the fastest mirrors and updates mirrorlist for pacman.\n        - pacdiff (arch-repo: pacman-contrib) (https://git.archlinux.org/pacman-contrib.git/about)\n          A simple program to merge or remove pacnew/pacsave files.\n\n    Options:\n      General:\n      :h   display usage information\n      :a   enable all tasks (default)\n\n      Enable tasks exclusively:\n      :n   archlinux-news\n      :y   yay\n      :u   paru\n      :p   pacman\n      :m   archlinux-mirrors\n      :d   pacdiff\n\n      Exclude tasks:\n      :N   archlinux-news\n      :Y   yay\n      :U   paru\n      :P   pacman\n      :M   archlinux-mirrors\n      :D   pacdiff\n\n    Environment Variables:\n      $UPDOOT_ARCHLINUX_MIRROR_COUNTRY (country name) [United States]\n        Country to select mirrors from.\n        Must match the format used in /etc/pacman.d/mirrorlist\n      $UPDOOT_ARCHLINUX_PREFERRED_HELPER (\"yay\", \"paru\", \"none\", or \"\") [paru]\n\n  - cabal\n    A system for building and packaging Haskell libraries and programs\n    Dependencies:\n      - cabal-install (arch-repo: cabal-install) (https://github.com/haskell/cabal/blob/master/cabal-install/README.md)\n\n  - nvim\n    The Neovim text editor\n    Dependencies:\n      - nvim (arch-repo: neovim) (https://neovim.io)\n\n    Note:\n      Expects your neovim configuration to define the following functions:\n        - PluginCleanHeadless()\n        - PluginUpdateHeadless()\n        - PluginInstallHeadless()\n\n    Options:\n      General:\n      :h   display usage information\n      :a   enable all tasks\n\n      Enable tasks inclusively:\n      :c   clean\n      :i   install\n\n      Enable tasks exclusively:\n      :C   clean\n      :u   update\n      :I   install\n\n      Exclude tasks:\n      :U   update\n\n  * pip\n    A package manager for the Python programming language\n    Dependencies:\n      Primary:\n        - pip (arch-repo: python-pip) (https://pip.pypa.io)\n      Optional:\n        - pipx (https://github.com/pipxproject/pipx)\n\n  - dummy_user\n\n  - nix\n    A purely functional package manager\n    Dependencies:\n      Required:\n        - nix (aur: nix) (https://nixos.org/nix)\n        - sudo [if root is needed to manage nix] (arch-repo: sudo) (https://www.sudo.ws)\n      Optional:\n        - home-manager (https://github.com/rycee/home-manager)\n\n  * asdf\n    Extendable version manager with support for Ruby, Node.js, Elixir, Erlang \u0026 more\n    Dependencies:\n      - asdf (aur: asdf-vm) (https://github.com/asdf-vm/asdf)\n\n  * pnpm\n    Fast, disk space efficient package manager for Node.js\n    Dependencies:\n      - pnpm (aur: pnpm) (https://pnpm.io/)\n\n  * mise\n    mise-en-place - The front-end to your dev env\n    Dependencies:\n      - mise (https://mise.jdx.dev/)\n\n  * uv\n    An extremely fast Python package and project manager, written in Rust.\n    Dependencies:\n      - uv (https://docs.astral.sh/uv/)\n\n  * gem\n    A package manager for the Ruby programming language\n    Dependencies:\n      - gem (arch-repo: rubygems) (https://rubygems.org/)\n\n  * aqua\n    Declarative CLI Version Manager. Unify tool versions in teams, projects, and CI. Easy, painless, and secure.\n    Dependencies:\n      - aqua (https://aquaproj.github.io/)\n\n  - cpan\n    A repository of software modules written in the Perl programming language\n    Dependencies:\n      - cpan (arch-repo: perl) (https://www.perl.org)\n\n  * tpm\n    Tmux Plugin Manager\n    Dependencies:\n      - tmux (arch-repo: tmux) (https://github.com/tmux/tmux)\n      - tpm (https://github.com/tmux-plugins/tpm)\n\n    Environment Variables:\n      $UPDOOT_TPM_PATH [$XDG_CONFIG_HOME/tmux/plugins//tpm]\n      Path to the tpm plugin's directory\n      If not set, the tpm provider will try to find your tpm directory.\n\n  - opam\n    A package manager for the OCaml programming language\n    Dependencies:\n      - opam (arch-repo: opam) (https://opam.ocaml.org/)\n\n  * npm\n    A package manager for Node.js / JavaScript\n    Dependencies:\n      - npm (arch-repo: npm) (https://npmjs.com)\n\n  * zsh\n    A very advanced and programmable command interpreter (shell) for UNIX\n    Dependencies:\n      Primary: (at least one)\n        - oh-my-zsh (https://github.com/ohmyzsh/ohmyzsh)\n        and/or\n        - zinit (https://github.com/zdharma/zinit)\n      Required:\n        - zsh (arch-repo: zsh) (https://zsh.org)\n\n  * gh\n    GitHub CLI extensions.\n    Dependencies:\n      - gh (arch-repo: github-cli) (https://github.com/cli/cli)\n\n  - go\n    A package manager for the Go programming language\n    Dependencies:\n      Primary:\n        - go (arch-repo: go) (https://golang.org/)\n      Optional:\n        - gobin (https://github.com/myitcv/gobin)\n          The gobin command installs/runs main packages\n          Required for path@version packages, as described in UPDOOT_GO_GOPACKAGES_PATH\n\n    Environment Variables:\n      $UPDOOT_GO_GOPACKAGES_PATH (directory) [$HOME/.gopackages]\n        Path to a Bash script file exporting the following variables:\n\n        - GO_BIN_PKGS (array) [required]\n          Array items consist of a Go package path, optionally followed by an @, optionally followed by a version.\n          A package followed by an @ with no version implies the latest version.\n          A package not followed by an @ will be fetched with go get rather than gobin\n\n        - GOBIN (path) [optional]\n          See https://golang.org/cmd/go/#hdr-Environment_variables\n          If unset,\n\n        - GO_UPDATE_BEHAVIOR (string) [default: replace]\n          One of the following values:\n\n          - purge: All executables in GOBIN will be removed and new executables\n                   will be moved in. This has the effect of only keeping\n                   executables from packages that appear in GO_BIN_PKGS after an\n                   update, so any executables from manually installed packages or\n                   packages that are removed from the GO_BIN_PKGS array will be\n                   removed.\n\n          - replace: New executables will replace old ones in GOBIN\n\n  * rust\n    A multi-paradigm system programming language\n    Dependencies:\n      Primary: (at least one)\n        - rustup (arch-repo: rustup) (https://rustup.rs/) (recommended)\n          Rust toolchain installer\n          Includes: cargo, rustup\n        or\n        - rust (arch-repo: rust) (https://www.rust-lang.org/)\n          Rust toolchain\n          Includes: cargo\n      cargo crates:\n        - cargo-update (https://github.com/nabijaczleweli/cargo-update)\n          A cargo subcommand for checking and applying updates to installed executables\n\n\n(c) 2019-2024 Maddison Hellstrom \u003chttps://github.com/b0o\u003e\n\nMIT License (https://mit-license.org)\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb0o%2Fupdoot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb0o%2Fupdoot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb0o%2Fupdoot/lists"}