Add gem completion
authorMark Szymanski <mrman208@me.com>
Wed, 29 Jun 2011 16:33:39 +0000 (11:33 -0500)
committerMark Szymanski <mrman208@me.com>
Wed, 29 Jun 2011 16:33:39 +0000 (11:33 -0500)
completion/available/gem.completion.bash [new file with mode: 0644]

diff --git a/completion/available/gem.completion.bash b/completion/available/gem.completion.bash
new file mode 100644 (file)
index 0000000..7231eef
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+# Completion for gem
+
+if [ -z "$REMOTE_GEMS" ]
+then
+  REMOTE_GEMS=( $(gem list --remote --no-versions | tr '\n' ' ') )
+fi
+
+if [ -z "$LOCAL_GEMS" ]
+then
+  LOCAL_GEMS=( $(gem list --no-versions | sed 's/\*\*\* LOCAL GEMS \*\*\*//' | tr '\n' ' ') )
+fi
+
+_installcomp() {
+  local cur=${COMP_WORDS[COMP_CWORD]}
+  COMPREPLY=( $(compgen -W "${REMOTE_GEMS[*]}" -- $cur) )
+}
+
+_uninstallcomp() {
+  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