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>
37 lines
985 B
Text
37 lines
985 B
Text
_partx_module()
|
|
{
|
|
local cur prev OPTS OUTPUT
|
|
COMPREPLY=()
|
|
OUTPUT="NR START END SECTORS SIZE NAME UUID TYPE FLAGS SCHEME"
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
case $prev in
|
|
'-n'|'--nr')
|
|
return 0
|
|
;;
|
|
'-o'|'--output')
|
|
# FIXME: how to append to a string with compgen?
|
|
compopt -o nospace
|
|
COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) )
|
|
return 0
|
|
;;
|
|
'-t'|'--type')
|
|
# FIXME: some command should list type libblkid knows.
|
|
COMPREPLY=( $(compgen -W "aix bsd dos gpt mac minix sgi solaris_x86 sun ultrix unixware" -- $cur) )
|
|
return 0
|
|
;;
|
|
'-h'|'--help'|'-V'|'--version')
|
|
return 0
|
|
;;
|
|
esac
|
|
case $cur in
|
|
-*)
|
|
OPTS="--add --delete --show --update --bytes --noheadings --nr --output --pairs --raw --type --verbose --help --version"
|
|
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
|
|
return 0
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
|
|
return 0
|
|
}
|
|
complete -F _partx_module partx
|