| _blkzone_module() |
| { |
| local cur prev OPTS |
| COMPREPLY=() |
| cur="${COMP_WORDS[COMP_CWORD]}" |
| prev="${COMP_WORDS[COMP_CWORD-1]}" |
| case $prev in |
| '-o'|'--offset') |
| COMPREPLY=( $(compgen -W "sector" -- $cur) ) |
| return 0 |
| ;; |
| '-l'|'--length') |
| COMPREPLY=( $(compgen -W "size" -- $cur) ) |
| return 0 |
| ;; |
| '-c'|'--count') |
| COMPREPLY=( $(compgen -W "number" -- $cur) ) |
| return 0 |
| ;; |
| '-h'|'--help'|'-V'|'--version') |
| return 0 |
| ;; |
| esac |
| case $cur in |
| -*) |
| case $prev in |
| 'report'|'reset') |
| OPTS="--verbose --offset --length --count" |
| ;; |
| *) |
| OPTS="--help --version" |
| ;; |
| esac |
| COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) |
| return 0 |
| ;; |
| *) |
| case $prev in |
| 'report'|'reset') |
| ;; |
| *) |
| OPTS="report reset" |
| COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) |
| ;; |
| esac |
| return 0 |
| ;; |
| esac |
| COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) |
| return 0 |
| } |
| complete -F _blkzone_module blkzone |