# 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: filetype=sh