Skip to content

version-manager/woof

Repository files navigation

Woof

The version manager to end all version managers

STATUS: IN DEVELOPMENT

Why?

  • Your OS's package manager doesn't contain the latest (or multiple) $language versions
  • You want an OS-independent way to install and switch between $language versions
  • You are tired of installing and configuring version managers (or version manager plugins) for every single language
  • More repeatable and reproducible builds

Features

  • Just Fucking Works
  • Optionally configurationless
  • Clean Bash code
    • Favors builtins and native Bash features (over external commands)
  • Supports 35 tools on at least x86_64 (see roadmap and languages for details)
  • Compatible with .tool-versions, nvm's .nvmrc and read things from popular version managers like rvm and pyenv
  • Fast
  • Uses no symlinks or shims

Preview (v0.5.0)

Demo

Prerequisites

External utilities are only used due to necessity or efficiency. The following are used

  • cURL
  • jq 1.6
  • POSIX mv, cat, cp, uname, stty,, etc.
  • sort (TODO: phase out -V GNUism)
  • Optional: pv

Installation

Use Basalt, a Bash package manager, to install this project globally

basalt global add hyperupcall/woof