Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
Go to file
Trevor Brown 26a3815948 feat(golang-rewrite): implement asdf env command
* Create `CallbackPath` method on `Plugin` struct
* Correct behavior of `asdf shimversions` command
* Update `shims.FindExecutable` function to return plugin
* Create `repotest.WritePluginCallback` function
* Create `execenv` package for invoking `exec-env` plugin callback
* Make `MapToSlice` a public function
* Return resolved version from `shims.FindExecutable` function
* Create `shims.ExecutablePaths` function
* Enable `shim_env_command.bats` tests
* Implement `asdf env` command
2024-12-18 11:32:03 -05:00
.github feat(golang-rewrite): correct asdf-version workflow step to produce version as output 2024-12-18 11:32:03 -05:00
bin perf: only create dirs if they do not already exist (#1566) 2024-01-11 00:10:30 +11:00
cmd feat(golang-rewrite): implement asdf env command 2024-12-18 11:32:03 -05:00
completions fix(completions): Address two Bash completion bugs (#1770) 2024-12-17 07:42:20 -05:00
docs feat(golang-rewrite): implement asdf env command 2024-12-18 11:32:03 -05:00
internal feat(golang-rewrite): implement asdf env command 2024-12-18 11:32:03 -05:00
lib fix: when download path got removed, it should use -f to force delete the download files (#1746) 2024-12-17 14:53:15 -05:00
repotest fix(golang-rewrite): allow directories returned by list-bin-paths to be absent from the file system 2024-12-18 11:32:03 -05:00
scripts feat(golang-rewrite): compile asdf version into Go binaries 2024-12-18 11:32:03 -05:00
test feat(golang-rewrite): implement asdf env command 2024-12-18 11:32:03 -05:00
.editorconfig fix!: align Fish entrypoint behaviour with other shells (#1524) 2023-03-30 07:27:23 +00:00
.git-blame-ignore-revs chore: provide .git-blame-ignore-revs for easier investigation (#1465) 2023-01-29 16:33:23 +11:00
.gitattributes
.gitignore feat(golang-rewrite): PluginAdd function 2024-12-18 11:32:00 -05:00
.goreleaser.yaml fix(golang-rewrite): attempt to fix goreleaser GitHub workflow 2024-12-18 11:32:00 -05:00
.tool-versions feat(golang-rewrite): initialize golang module 2024-12-18 11:31:59 -05:00
asdf.elv
asdf.fish fix(fish): use PATH instead of fish_user_paths (#1709) 2024-01-18 12:27:09 +11:00
asdf.nu feat: correct description for version preceded by star 2024-12-18 10:31:05 -05:00
asdf.ps1 feat: Support PowerShell Core (#1522) 2023-04-01 04:12:20 +00:00
asdf.sh fix: set default shell version values on POSIX entrypoint (#1594) 2023-09-11 00:42:55 +10:00
ballad-of-asdf.md
CHANGELOG.md chore(master): release 0.15.0 (#1807) 2024-12-18 10:48:53 -05:00
CONTRIBUTING.md
defaults feat: Support configurable ASDF_CONCURRENCY (#1532) 2023-04-19 13:45:51 +00:00
go.mod feat(golang-rewrite): create asdf exec command 2024-12-18 11:32:02 -05:00
go.sum feat(golang-rewrite): offline Go tests 2024-12-18 11:32:01 -05:00
help.txt fix: list asdf version command under help.txt UTILS section (#1673) 2024-01-09 23:57:25 +11:00
LICENSE
main_test.go feat(golang-rewrite): implement asdf env command 2024-12-18 11:32:03 -05:00
main.go feat(golang-rewrite): compile asdf version into Go binaries 2024-12-18 11:32:03 -05:00
Makefile feat(golang-rewrite): compile asdf version into Go binaries 2024-12-18 11:32:03 -05:00
README.md docs: split Lint and Test badges for title asdf in README.MD (#1725) 2024-12-18 10:37:35 -05:00
SECURITY.md chore(master): release 0.15.0 (#1807) 2024-12-18 10:48:53 -05:00
staticcheck.conf feat(golang-rewrite): use plugin index 2024-12-18 11:32:01 -05:00
version.txt chore(master): release 0.15.0 (#1807) 2024-12-18 10:48:53 -05:00

asdf

Lint Tests

Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com

asdf 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?

  • 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
  • shell completion available for common shells (Bash, Zsh, Fish, Elvish)

Documentation

Please head over to the documentation site for more information!

Contributing

See CONTRIBUTING.md in the repo or the Contributing section on the docs site.

Community & Questions

  • FAQ
  • GitHub Issues GitHub Issues: report a bug or raise a feature request to the asdf core team
  • StackOverflow Tag StackOverflow Tag: see existing Q&A for asdf. Some of the core team watch this tag in addition to our helpful community

Ballad of asdf

Once upon a time there was a programming language
There were many versions of it
So people wrote a version manager for it
To switch between versions for projects
Different, old, new.

Then there came more programming languages
So there came more version managers
And many commands for them

I installed a lot of them
I learnt a lot of commands

Then I said, just one more version manager
Which I will write instead

So, there came another version manager
asdf version manager - https://github.com/asdf-vm/asdf

A version manager so extendable
for which anyone can create a plugin
To support their favourite language
No more installing more version managers
Or learning more commands


This was the mail I wrote to a few friends to tell them about the project. Thanks to @roshanvid for suggesting that this go into the readme
@HashNuke