# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- # ex: ts=8 sw=8 noet filetype=sh # # mtx completion by Jon Middleton _mtx() { local cur prev options tapes drives COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} options="-f nobarcode invert noattach --version inquiry noattach \ inventory status load unload eepos first last next" tapes=$(mtx status | \ awk '/Storage Element [0-9]+:Full/ { printf "%s ", $3 }') tapes=${tapes//:Full} drives=$(mtx status | \ awk '/Data Transfer Element [0-9]+:(Full|Empty)/ { printf "%s ", $4 }') drives=${drives//:Full} drives=${drives//:Empty} if [ $COMP_CWORD -gt 1 ]; then case $prev in load) COMPREPLY=( $( compgen -W "$tapes" -- "$cur" ) ) ;; @(unload|first|last|next)) COMPREPLY=( $( compgen -W "$drives" -- "$cur" ) ) ;; *) true ;; esac else COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) fi return 0 } complete -F _mtx mtx