# 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 == 0 || o == cword)); then if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) return fi # Password file (first non-option argument) _filedir elif ((o == 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