asdf/completions/asdf.bash
Kevin Rockwood ca1273e7d4 Rename which to current (#79)
* Rename `asdf which` -> `asdf current`

* Output `set by $path` with current command

* Use dummy plugin in current_command test

* Hide "set by" message if derived from legacy file
2016-07-25 00:47:17 +09:00

44 lines
1.1 KiB
Bash

#!/usr/bin/env bash
_asdf () {
local cur=${COMP_WORDS[COMP_CWORD]}
local cmd=${COMP_WORDS[1]}
local prev=${COMP_WORDS[COMP_CWORD-1]}
local plugins=$(asdf plugin-list | tr '\n' ' ')
COMPREPLY=()
case "$cmd" in
plugin-update)
COMPREPLY=($(compgen -W "$plugins --all" -- $cur))
;;
plugin-remove|current|list|list-all)
COMPREPLY=($(compgen -W "$plugins" -- $cur))
;;
install)
if [[ "$plugins" == *"$prev"* ]] ; then
local versions=$(asdf list-all $prev)
COMPREPLY=($(compgen -W "$versions" -- $cur))
else
COMPREPLY=($(compgen -W "$plugins" -- $cur))
fi
;;
uninstall|where|reshim)
if [[ "$plugins" == *"$prev"* ]] ; then
local versions=$(asdf list $prev)
COMPREPLY=($(compgen -W "$versions" -- $cur))
else
COMPREPLY=($(compgen -W "$plugins" -- $cur))
fi
;;
*)
local cmds='plugin-add plugin-list plugin-remove plugin-update install uninstall current where list list-all reshim'
COMPREPLY=($(compgen -W "$cmds" -- $cur))
;;
esac
return 0
}
complete -F _asdf asdf