util-linux/bash-completion/blkid
Sami Kerola 53154dae39 bash-completion: stop being clever when listing block devices
Various commands such as blkid, cfdisk, fdisk, delpart, and so on listed
only partitions and missed for example disks and volume groups.  The
right thing to do is to list all block devices in all for all commands
performing operations with them.  This might occasionally list unexpected
devices that I think is lesser bad than missing some.

Addresses: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764488
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
2014-10-31 10:39:00 +01:00

64 lines
1.4 KiB
Text

_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