# htpasswd(1) completion -*- shell-script -*- _htpasswd() { local cur prev words cword _init_completion || return local i o=0 # $o is index of first non-option argument for (( i=1; i <= cword; i++ )); do case ${words[i]} in -*n*) return ;; -*) ;; *) o=$i ; break ;; esac done if [[ $o -eq 0 || $o -eq $cword ]]; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return fi # Password file (first non-option argument) _filedir elif [[ $o -eq $cword-1 ]]; then # Username (second non-option argument) COMPREPLY=( $( compgen -W \ '$( cut -d: -f1 "${words[o]}" 2>/dev/null )' -- "$cur" ) ) fi } && complete -F _htpasswd htpasswd # ex: ts=4 sw=4 et filetype=sh