# bash completion support for clevis. _clevis() { local dir prev cur field dir=$(dirname "$(command -v clevis)") prev=${COMP_WORDS[COMP_CWORD-1]} cur=${COMP_WORDS[COMP_CWORD]} field=$((COMP_CWORD + 1)) case "${prev}" in -d) cur=${cur:=/dev/} _filedir return ;; -k) _filedir return ;; esac local name suggestions if [[ "${COMP_WORDS[COMP_CWORD-1]}" == "clevis" ]]; then name="clevis-*" fi if [[ "${COMP_WORDS[COMP_CWORD-2]}" == "clevis" ]]; then name="clevis-${COMP_WORDS[COMP_CWORD-1]}-*" fi suggestions= if [[ -n "${name}" ]]; then suggestions=$(find "${dir}" -name "${name}" -executable \ | cut -d '-' -f"${field}" | sort -u) local word if [[ -n "${cur}" ]]; then suggestions=$(for word in "${suggestions[@]}"; do \ echo "${word}" | grep -- "${cur}"; done) fi fi COMPREPLY=($(compgen -W "${suggestions}" -- "${cur}")) } complete -F _clevis clevis # vim: set ts=8 shiftwidth=4 softtabstop=4 expandtab smarttab colorcolumn=80: