Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/version-manager/woof
The version manager to end all version managers.
https://github.com/version-manager/woof
asdf basalt bash sdkman shell version-manager
Last synced: 4 days ago
JSON representation
The version manager to end all version managers.
- Host: GitHub
- URL: https://github.com/version-manager/woof
- Owner: version-manager
- License: mpl-2.0
- Created: 2021-10-23T18:15:44.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-15T14:40:46.000Z (about 1 year ago)
- Last Synced: 2024-09-07T10:03:16.618Z (2 months ago)
- Topics: asdf, basalt, bash, sdkman, shell, version-manager
- Language: Shell
- Homepage: https://version-manager.github.io/woof
- Size: 3.88 MB
- Stars: 29
- Watchers: 2
- Forks: 1
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
- awesome-version-managers - woof - A Bash-based version manager with plugin support optimized for UX (Version Managers / Generic)
README
# 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](./docs/roadmap.md) and [languages](./docs/languages.md) for details)
- Compatible with [.tool-versions](https://asdf-vm.com/manage/configuration.html#tool-versions), nvm's [.nvmrc](https://github.com/nvm-sh/nvm#nvmrc) and read things from popular version managers like `rvm` and `pyenv`
- Fast
- Uses no symlinks or shims## Preview (v0.5.0)
![Demo](./assets/demo.gif)
## 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](https://github.com/hyperupcall/basalt), a Bash package manager, to install this project globally
```sh
basalt global add hyperupcall/woof
```