blob: 7231eef0eb9c76b13ae2c7c0aeb71a29e0ca716d [file] [log] [blame]
Mark Szymanskif6950f92011-06-29 11:33:39 -05001#!/usr/bin/env bash
2# Completion for gem
3
4if [ -z "$REMOTE_GEMS" ]
5then
6 REMOTE_GEMS=( $(gem list --remote --no-versions | tr '\n' ' ') )
7fi
8
9if [ -z "$LOCAL_GEMS" ]
10then
11 LOCAL_GEMS=( $(gem list --no-versions | sed 's/\*\*\* LOCAL GEMS \*\*\*//' | tr '\n' ' ') )
12fi
13
14_installcomp() {
15 local cur=${COMP_WORDS[COMP_CWORD]}
16 COMPREPLY=( $(compgen -W "${REMOTE_GEMS[*]}" -- $cur) )
17}
18
19_uninstallcomp() {
20 local cur=${COMP_WORDS[COMP_CWORD]}
21 COMPREPLY=( $(compgen -W "${LOCAL_GEMS[*]}" -- $cur) )
22}
23
24_gem() {
25 local cur=${COMP_WORDS[COMP_CWORD]}
26 local prev=${COMP_WORDS[COMP_CWORD-1]}
27 case $prev in
28 install)
29 _installcomp
30 return 0
31 ;;
32 uninstall)
33 _uninstallcomp
34 return 0
35 ;;
36 esac
37 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)
38 COMPREPLY=( $(compgen -W "${commands[*]}" -- $cur) )
39}
40
41complete -F _gem gem