| _blkid_module() |
| { |
| local cur prev OPTS |
| COMPREPLY=() |
| cur="${COMP_WORDS[COMP_CWORD]}" |
| prev="${COMP_WORDS[COMP_CWORD-1]}" |
| case $prev in |
| '-c') |
| local IFS=$'\n' |
| compopt -o filenames |
| COMPREPLY=( $(compgen -f -- $cur) ) |
| return 0 |
| ;; |
| '-o') |
| COMPREPLY=( $(compgen -W "value device export full" -- $cur) ) |
| return 0 |
| ;; |
| '-s') |
| COMPREPLY=( $(compgen -W "tag" -- $cur) ) |
| return 0 |
| ;; |
| '-t') |
| COMPREPLY=( $(compgen -W "token" -- $cur) ) |
| return 0 |
| ;; |
| '-L') |
| COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-label/ 2>/dev/null && echo *)" -- $cur) ) |
| return 0 |
| ;; |
| '-U') |
| COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-uuid/ 2>/dev/null && echo *)" -- $cur) ) |
| return 0 |
| ;; |
| '-s') |
| COMPREPLY=( $(compgen -W "size" -- $cur) ) |
| return 0 |
| ;; |
| '-O') |
| COMPREPLY=( $(compgen -W "offset" -- $cur) ) |
| return 0 |
| ;; |
| '-u') |
| COMPREPLY=( $(compgen -W "filesystem raid crypto other nofilesystem noraid nocrypto noother" -- $cur) ) |
| return 0 |
| ;; |
| '-n') |
| COMPREPLY=( $(compgen -W "$(awk '{print $NF}' /proc/filesystems)" -- $cur) ) |
| return 0 |
| ;; |
| '-h'|'-V') |
| return 0 |
| ;; |
| esac |
| case $cur in |
| -*) |
| OPTS="-c -d -h -g -o -k -s -t -l -L -U -V -p -i -S -O -u -n" |
| COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) |
| return 0 |
| ;; |
| esac |
| COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) |
| return 0 |
| } |
| complete -F _blkid_module blkid |