Merge pull request #1802 from NoahGorny/cleanup/gem-completions

formatted gem completion
pull/1799/head
Noah Gorny 2021-01-28 18:07:51 +02:00 committed by GitHub
commit 391ce6e91f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 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,35 @@
#!/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
if [ -z "$REMOTE_GEMS" ]; then
read -r -a REMOTE_GEMS <<< "$(gem list --remote --no-versions | sed 's/\*\*\* REMOTE GEMS \*\*\*//' | tr '\n' ' ')"
fi
local cur=${COMP_WORDS[COMP_CWORD]}
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "${REMOTE_GEMS[*]}" -- "$cur"))
return 0 return 0
;; ;;
uninstall) uninstall)
_uninstallcomp # list all local installed gems and add to completion
read -r -a LOCAL_GEMS <<< "$(gem list --no-versions | sed 's/\*\*\* LOCAL GEMS \*\*\*//' | tr '\n' ' ')"
local cur=${COMP_WORDS[COMP_CWORD]}
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "${LOCAL_GEMS[*]}" -- "$cur"))
return 0 return 0
;; ;;
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) ) # shellcheck disable=SC2207
COMPREPLY=($(compgen -W "${commands[*]}" -- "$cur"))
} }
complete -F _gem gem complete -F __gem_completion gem