Skip to content

Instantly share code, notes, and snippets.

@ruanwz
Created April 27, 2011 17:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ruanwz/944787 to your computer and use it in GitHub Desktop.
Save ruanwz/944787 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
__bdsm_bash_completion()
{
local current_word previous flags commands extensions
# COMPREPLY=()
current_word="${COMP_WORDS[COMP_CWORD]}"
previous="${COMP_WORDS[COMP_CWORD-1]}"
extensions="$( bdsm list | tr "\n" ' ')"
commands="extend help get list version mod edit open website ${extensions}"
commands="${commands[@]}"
flags="--trace"
current_count=${#COMP_WORDS[@]}
completed=${COMP_CWORD}
# # Try to complete commands
# if (( current_count >= 1 )) && [[ "${previous}" != -* ]]
# then
# COMPREPLY=( $(compgen -W "${commands}" -- ${current_word}) )
# fi
#
# if (( current_count >= 2 )) && [[ "${previous}" != -* ]]
# then
# # Complete based on installed extensions.
# case "${previous}" in
# extend)
# available="$( bdsm list available)"
# COMPREPLY=($(compgen -W "${available}" -- ${current_word}))
# return 0
# ;;
# edit|open|website)
# COMPREPLY=( $(compgen -W "${extensions}" -- ${current_word}) )
# return 0
# ;;
# list)
# COMPREPLY=( $(compgen -W "installed available" -- ${current_word}) )
# return 0
# ;;
# *)
# if [[ "${commands}" == *${previous}* ]]
# then
# actions="$( bdsm "${previous}" | tail -1 )"
# COMPREPLY=( $(compgen -W "${actions}" -- ${current_word}) )
# return 0
# fi
# ;;
# esac
# fi
#
# if (( current_count > 3 ))
# then
# if [[ ${current_word} == -* ]] ; then
# COMPREPLY=( $(compgen -W "${flags}" -- ${current_word}) )
# else
# actions="$( bdsm "${previous}" | tail -1 )"
# COMPREPLY=( $(compgen -W "${actions}" -- ${current_word}) )
# fi
# fi
#
# # Try to complete options
# if [[ ${current_word} == -* ]] ; then
# COMPREPLY=( $(compgen -W "${flags}" -- ${current_word}) )
# return 0
# else
# COMPREPLY=( $(compgen -W "${commands}" -- ${current_word}) )
# return 0
# fi
}
complete -F __bdsm_bash_completion bdsm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment