# mtx completion -*- shell-script -*- # by Jon Middleton _mtx() { local cur prev words cword _init_completion || return local options tapes drives options="-f nobarcode invert noattach --version inquiry noattach \ inventory status load unload eepos first last next" tapes=$(mtx status 2>/dev/null | awk '/Storage Element [0-9]+:Full/ { printf "%s ", $3 }') tapes=${tapes//:Full/} drives=$(mtx status 2>/dev/null | awk '/Data Transfer Element [0-9]+:(Full|Empty)/ { printf "%s ", $4 }') drives=${drives//:Full/} drives=${drives//:Empty/} if ((cword > 1)); then case $prev in load) COMPREPLY=($(compgen -W "$tapes" -- "$cur")) ;; unload | first | last | next) COMPREPLY=($(compgen -W "$drives" -- "$cur")) ;; -f) true ;; *) true ;; esac else COMPREPLY=($(compgen -W "$options" -- "$cur")) fi } && complete -F _mtx mtx # ex: filetype=sh