formatted gem completion

pull/1802/head
Gurkirat Singh 2021-01-10 19:23:26 +05:30 committed by Noah Gorny
parent 71c0c06a78
commit a8695edc8f
2 changed files with 29 additions and 37 deletions

View File

@ -64,6 +64,7 @@ completion/available/conda.completion.bash
completion/available/consul.completion.bash completion/available/consul.completion.bash
completion/available/docker.completion.bash completion/available/docker.completion.bash
completion/available/gcloud.completion.bash completion/available/gcloud.completion.bash
completion/available/gem.completion.bash
completion/available/github-cli.completion.bash completion/available/github-cli.completion.bash
completion/available/helm.completion.bash completion/available/helm.completion.bash
completion/available/knife.completion.bash completion/available/knife.completion.bash

View File

@ -1,41 +1,32 @@
#!/usr/bin/env bash # shellcheck shell=bash
# Completion for gem cite "about-completion"
about-completion "gem completion"
_installcomp() {
if [ -z "$REMOTE_GEMS" ]
then
REMOTE_GEMS=( $(gem list --remote --no-versions | tr '\n' ' ') )
fi
__gem_completion() {
local cur=${COMP_WORDS[COMP_CWORD]} local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "${REMOTE_GEMS[*]}" -- $cur) ) local prev=${COMP_WORDS[COMP_CWORD - 1]}
}
_uninstallcomp() {
if [ -z "$LOCAL_GEMS" ]
then
LOCAL_GEMS=( $(gem list --no-versions | sed 's/\*\*\* LOCAL GEMS \*\*\*//' | tr '\n' ' ') )
fi
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "${LOCAL_GEMS[*]}" -- $cur) )
}
_gem() {
local cur=${COMP_WORDS[COMP_CWORD]}
local prev=${COMP_WORDS[COMP_CWORD-1]}
case $prev in case $prev in
install) install)
_installcomp # list the remote gems and add to completion
return 0 if [ -z "$REMOTE_GEMS" ]; then
REMOTE_GEMS=($(gem list --remote --no-versions | sed 's/\*\*\* REMOTE GEMS \*\*\*//' | tr '\n' ' '))
fi
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -W "${REMOTE_GEMS[*]}" -- "$cur"))
;; ;;
uninstall) uninstall)
_uninstallcomp # list all local installed gems and add to completion
return 0 if [ -z "$LOCAL_GEMS" ]; then
LOCAL_GEMS=($(gem list --no-versions | sed 's/\*\*\* LOCAL GEMS \*\*\*//' | tr '\n' ' '))
fi
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -W "${LOCAL_GEMS[*]}" -- "$cur"))
;; ;;
esac esac
local commands=(build cert check cleanup contents dependency environment fetch generate_index help install list lock outdated owner pristine push query rdoc search server sources specification stale uninstall unpack update which) local commands=(build cert check cleanup contents dependency environment fetch generate_index help install list lock outdated owner pristine push query rdoc search server sources specification stale uninstall unpack update which)
COMPREPLY=( $(compgen -W "${commands[*]}" -- $cur) ) COMPREPLY=($(compgen -W "${commands[*]}" -- "$cur"))
} }
complete -F _gem gem complete -F __gem_completion gem