mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-11-15 01:28:17 -07:00
Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
0e8e1f8f84
It's possible for plugins to define new asdf commands. This way plugins can extend asdf capabilities or expose utilities related to their managed tool. For example, a `foo` plugin might expose the command `asdf foo bar` by providing an executable file at `bin/bar`. If `bin/bar` is a file but has no executable bit set, then its considered a source-able bash script, and will be sourced with all the functions in `$ASDF_DIR/lib/utils.sh` already loaded. A good example of this feature is the `nodejs` plugin, where people must import the release team keyring before installing a nodejs version. People can execute the following command without having to know where exactly is the plugin located. |
||
---|---|---|
.github | ||
bin | ||
completions | ||
docs | ||
lib | ||
release | ||
test | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
asdf.fish | ||
asdf.sh | ||
ballad-of-asdf.md | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
defaults | ||
help.txt | ||
LICENSE | ||
lint.sh | ||
prepare-travis.sh | ||
README.md | ||
Vagrantfile | ||
VERSION |
asdf-vm
Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com
asdf-vm is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm
, nvm
, rbenv
& pyenv
(and more) all in one! Simply install your language's plugin!
Why use asdf-vm?
- single CLI for multiple languages
- consistent commands to manage all your languages
- single global config keeping defaults in one place
- single
.tool-versions
config file per project - support for existing config files
.node-version
,.nvmrc
,.ruby-version
for easy migration - automatically switches runtime versions as you traverse your directories
- simple plugin system to add support for your language of choice
- completion scripts managed by the plugin, not you!
Documentation
Please head over the documentation site for more information!
Contributing
See CONTRIBUTING.md in the repo or the Contributing section on the docs site.