mirror of
https://github.com/rbenv/rbenv.git
synced 2024-12-28 20:55:38 +01:00
Proof-of-concept external completions
This commit is contained in:
parent
eefd5ea47d
commit
6da85246c6
3 changed files with 30 additions and 23 deletions
|
@ -1,29 +1,14 @@
|
|||
_rbenv_commands() {
|
||||
COMPREPLY=()
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
COMPREPLY=( $( compgen -W "$(rbenv commands)" -- $cur ) )
|
||||
}
|
||||
|
||||
_rbenv_versions() {
|
||||
COMPREPLY=()
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
local versions="$(echo system; rbenv versions --bare)"
|
||||
COMPREPLY=( $( compgen -W "$versions" -- $cur ) )
|
||||
}
|
||||
|
||||
_rbenv() {
|
||||
COMPREPLY=()
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
local word="${COMP_WORDS[COMP_CWORD]}"
|
||||
|
||||
case "$prev" in
|
||||
set-* | global | local | shell | prefix )
|
||||
_rbenv_versions
|
||||
;;
|
||||
* )
|
||||
_rbenv_commands
|
||||
;;
|
||||
esac
|
||||
if [ "$COMP_CWORD" -eq 1 ]; then
|
||||
COMPREPLY=( $(compgen -W "$(rbenv commands)" -- "$word") )
|
||||
else
|
||||
local command="${COMP_WORDS[1]}"
|
||||
local completions="$(rbenv completions "$command")"
|
||||
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
|
||||
fi
|
||||
}
|
||||
|
||||
complete -F _rbenv rbenv
|
||||
|
|
15
libexec/rbenv-completions
Executable file
15
libexec/rbenv-completions
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
[ -n "$RBENV_DEBUG" ] && set -x
|
||||
|
||||
COMMAND="$1"
|
||||
if [ -z "$COMMAND" ]; then
|
||||
echo "usage: rbenv completions COMMAND [arg1 arg2...]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMMAND_PATH="$(command -v "rbenv-$COMMAND")"
|
||||
if grep -i "^# provide rbenv completions" "$COMMAND_PATH" >/dev/null; then
|
||||
shift
|
||||
exec "$COMMAND_PATH" --complete "$@"
|
||||
fi
|
|
@ -2,6 +2,13 @@
|
|||
set -e
|
||||
[ -n "$RBENV_DEBUG" ] && set -x
|
||||
|
||||
# Provide rbenv completions
|
||||
if [ "$1" = "--complete" ]; then
|
||||
shift
|
||||
echo system
|
||||
exec rbenv-versions --bare
|
||||
fi
|
||||
|
||||
RBENV_VERSION="$1"
|
||||
RBENV_VERSION_FILE=".rbenv-version"
|
||||
|
||||
|
|
Loading…
Reference in a new issue