_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