Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added completion (show, help, enable, disable) for the bash-it function

  • Loading branch information...
commit 4261f3d8ecdc3e7cf400064d33907dc6f927b58b 1 parent 5c0e143
@nwinkler nwinkler authored
Showing with 135 additions and 0 deletions.
  1. +135 −0 completion/available/bash-it.completion.bash
View
135 completion/available/bash-it.completion.bash
@@ -0,0 +1,135 @@
+#!/usr/bin/env bash
+
+_bash-it-comp-enable-disable()
+{
+ local enable_disable_args="alias plugin completion"
+ COMPREPLY=( $(compgen -W "${enable_disable_args}" -- ${cur}) )
+}
+
+_bash-it-comp-list-available-not-enabled()
+{
+ subdirectory="$1"
+
+ local available_things=$(for f in `ls -1 $BASH_IT/$subdirectory/available/*.bash`;
+ do
+ if [ ! -e $BASH_IT/$subdirectory/enabled/$(basename $f) ]
+ then
+ basename $f | cut -d'.' -f1
+ fi
+ done)
+
+ COMPREPLY=( $(compgen -W "all ${available_things}" -- ${cur}) )
+}
+
+_bash-it-comp-list-enabled()
+{
+ subdirectory="$1"
+
+ local enabled_things=$(for f in `ls -1 $BASH_IT/$subdirectory/enabled/*.bash`;
+ do
+ basename $f | cut -d'.' -f1
+ done)
+
+ COMPREPLY=( $(compgen -W "all ${enabled_things}" -- ${cur}) )
+}
+
+_bash-it-comp-list-available()
+{
+ subdirectory="$1"
+
+ local enabled_things=$(for f in `ls -1 $BASH_IT/$subdirectory/available/*.bash`;
+ do
+ basename $f | cut -d'.' -f1
+ done)
+
+ COMPREPLY=( $(compgen -W "${enabled_things}" -- ${cur}) )
+}
+
+_bash-it-comp()
+{
+ local cur prev opts prevprev
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+
+ opts="help show enable disable"
+
+ case "${prev}" in
+ show)
+ local show_args="plugins aliases completions"
+ COMPREPLY=( $(compgen -W "${show_args}" -- ${cur}) )
+ return 0
+ ;;
+ help)
+ local help_args="plugins aliases"
+ COMPREPLY=( $(compgen -W "${help_args}" -- ${cur}) )
+ return 0
+ ;;
+ enable)
+ _bash-it-comp-enable-disable
+ return 0
+ ;;
+ disable)
+ _bash-it-comp-enable-disable
+ return 0
+ ;;
+ aliases)
+ prevprev="${COMP_WORDS[COMP_CWORD-2]}"
+
+ case "${prevprev}" in
+ help)
+ _bash-it-comp-list-available aliases
+ return 0
+ ;;
+ esac
+ ;;
+ alias)
+ prevprev="${COMP_WORDS[COMP_CWORD-2]}"
+
+ case "${prevprev}" in
+ enable)
+ _bash-it-comp-list-available-not-enabled aliases
+ return 0
+ ;;
+ disable)
+ _bash-it-comp-list-enabled aliases
+ return 0
+ ;;
+ esac
+ ;;
+ plugin)
+ prevprev="${COMP_WORDS[COMP_CWORD-2]}"
+
+ case "${prevprev}" in
+ enable)
+ _bash-it-comp-list-available-not-enabled plugins
+ return 0
+ ;;
+ disable)
+ _bash-it-comp-list-enabled plugins
+ return 0
+ ;;
+ esac
+ ;;
+ completion)
+ prevprev="${COMP_WORDS[COMP_CWORD-2]}"
+
+ case "${prevprev}" in
+ enable)
+ _bash-it-comp-list-available-not-enabled completion
+ return 0
+ ;;
+ disable)
+ _bash-it-comp-list-enabled completion
+ return 0
+ ;;
+ esac
+ ;;
+ esac
+
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+
+ return 0
+}
+
+complete -F _bash-it-comp bash-it
Please sign in to comment.
Something went wrong with that request. Please try again.