_website_newdoc() { local dir='src' local excl='[._]*' if [[ "$COMP_CWORD" -gt 1 ]]; then dir="${dir}/tags" else excl="@(${excl}|tags)" fi pushd "$dir" >/dev/null COMPREPLY=($(compgen -o filenames -o nospace -d -X "$excl" -- "${COMP_WORDS[COMP_CWORD]}" | sed 's,$,/,')) popd >/dev/null } _website_newtag() { false } complete -o filenames -o nospace -F _website_newdoc ./new-doc complete -o filenames -o nospace -F _website_newtag ./new-tag