blob: 83ddfbc45749dad804dc7611dcb9caeb29fd8423 [file] [log] [blame]
#!/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