#!/usr/bin/env bash # Completion for gem _installcomp() { if [ -z "$REMOTE_GEMS" ] then REMOTE_GEMS=( $(gem list --remote --no-versions | tr '\n' ' ') ) fi local cur=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(compgen -W "${REMOTE_GEMS[*]}" -- $cur) ) } _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 install) _installcomp return 0 ;; uninstall) _uninstallcomp return 0 ;; 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) COMPREPLY=( $(compgen -W "${commands[*]}" -- $cur) ) } complete -F _gem gem