# bash completion for minicom # $Id: /local/home/dev/bash-completion/minicom 190 2009-11-26T22:23:28.122461Z guillaume $ _dkms() { local cur prev command module i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "add remove build install uninstall \ match mkdriverdisk mktarball ldtarball mkrpm mkkmp \ status" -- $cur ) ) else prev=${COMP_WORDS[COMP_CWORD-1]} case $prev in -m) COMPREPLY=( $( command ls -F /var/lib/dkms | grep '/$' | sed -e 's|/$||' | grep "^$cur" ) ) return 0 ;; -v) for (( i=1; i < COMP_CWORD; i++ )); do if [[ "${COMP_WORDS[i]}" == -m ]]; then module=${COMP_WORDS[i+1]} break fi done if [ -n "$module" ]; then COMPREPLY=( $( command ls -F /var/lib/dkms/$module | grep '/$' | sed -e 's|/$||' | grep "^$cur" ) ) return 0 fi ;; -k) _kernels return 0 ;; -@(c|-spec|-archive|-config)) _filedir return 0 ;; --kernelsourcedir) _filedir -d return 0 ;; esac command=${COMP_WORDS[1]} if [[ "$cur" == -* ]]; then case $command in add) options='-c --rpm_safe_upgrade' ;; remove) options='--rpm_safe_upgrade' ;; build) options='--config' ;; mkdriverdisk) options='-d --distro -r --release --size' ;; ldtarball) options='--archive --force' ;; mktarball) options='--source-only --binaries-only' ;; mkrpm) options='--source-only' ;; mkkmp) options='--spec' ;; match) options='--templatekernel' ;; esac options="$options -m -v -k -a --arch -q --quiet -V \ --version --all --no-prepare-kernel \ --no-clean-kernel --kernelsourcedir \ --directive" COMPREPLY=( $( compgen -W "$options" -- $cur ) ) fi fi } complete -F _dkms dkms