/bash_completion.d/m-a
http://github.com/brinkman83/bashrc · #! · 78 lines · 62 code · 16 blank · 0 comment · 0 complexity · 024cf1aaa1287981f5d339345cfcf65a MD5 · raw file
- #-*- mode: shell-script;-*-
- # Inputs:
- # $1 -- name of the command whose arguments are being completed
- # $2 -- word being completed
- # $3 -- word preceding the word being completed
- # $COMP_LINE -- current command line
- # $COMP_PONT -- cursor position
- # $COMP_WORDS -- array containing individual words in the current
- # command line
- # $COMP_CWORD -- index into ${COMP_WORDS} of the word containing the
- # current cursor position
- # Output:
- # COMPREPLY array variable contains possible completions
- #
- # Syntax (simple:
- # module-assistant [options] command module [module ...]
- have module-assistant &&
- _module_assistant() {
- local cur prev special i options commands
- options='-h -v -q -n -i -o -s -f -u -k -l \
- --help --verbose --quiet --no-rebuild --non-inter --unpack-once \
- --apt-search --force --userdir --kernel-dir --kvers-list'
- commands='update unpack get fakesource build list install auto-install prepare clean purge la li a-i'
- COMPREPLY=()
- cur=${COMP_WORDS[COMP_CWORD]}
- prev=${COMP_WORDS[COMP_CWORD-1]}
- for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
- if [[ ${COMP_WORDS[i]} == @(update|fakesource|unpack|get|build|list|install|auto-install|clean|purge|la|list-available|li|list-installed|a-i) ]]; then
- special=${COMP_WORDS[i]}
- fi
- done
- if [ -n "$special" ]; then
- case $special in
- clean|purge)
- COMPREPLY=( $( module-assistant -q compi $cur 2> /dev/null ) )
- return 0
- ;;
- *)
- COMPREPLY=( $( module-assistant -q comp $cur 2> /dev/null ) )
- return 0
- ;;
- esac
- fi
- case "$prev" in
- -@(u|k|-kernel-dir|-kernel-dirs))
- _filedir
- return 0
- ;;
- -@(l|-kver-list))
- COMPREPLY=( $( module-assistant -q compv $cur ) )
- return 0
- ;;
- esac
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W "$options" -- $cur ) )
- else
- COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
- fi
- return 0
- }
- [ "$have" ] && complete -F _module_assistant $filenames module-assistant
- [ "$have" ] && complete -F _module_assistant $filenames m-a