mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05: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() {
|
_rbenv() {
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local word="${COMP_WORDS[COMP_CWORD]}"
|
||||||
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
||||||
|
|
||||||
case "$prev" in
|
if [ "$COMP_CWORD" -eq 1 ]; then
|
||||||
set-* | global | local | shell | prefix )
|
COMPREPLY=( $(compgen -W "$(rbenv commands)" -- "$word") )
|
||||||
_rbenv_versions
|
else
|
||||||
;;
|
local command="${COMP_WORDS[1]}"
|
||||||
* )
|
local completions="$(rbenv completions "$command")"
|
||||||
_rbenv_commands
|
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
|
||||||
;;
|
fi
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
complete -F _rbenv rbenv
|
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
|
set -e
|
||||||
[ -n "$RBENV_DEBUG" ] && set -x
|
[ -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="$1"
|
||||||
RBENV_VERSION_FILE=".rbenv-version"
|
RBENV_VERSION_FILE=".rbenv-version"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue