_lsblk_module()
{
- local cur prev OPTS
+ local cur prev OPTS LSBLK_COLS_ALL
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
- LSBLK_COLS_ALL="NAME KNAME MAJ:MIN FSTYPE MOUNTPOINT
- LABEL UUID PARTTYPE PARTLABEL PARTUUID PARTFLAGS
- RA RO RM
- MODEL SIZE STATE OWNER GROUP MODE
- ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC
- ROTA SCHED RQ-SIZE TYPE DISC-ALN
- DISC-GRAN DISC-MAX DISC-ZERO WSAME WWN
- RAND PKNAME HCTL TRAN REV VENDOR"
+ LSBLK_COLS_ALL="
+ NAME KNAME MAJ:MIN FSTYPE MOUNTPOINT LABEL UUID PARTTYPE
+ PARTLABEL PARTUUID PARTFLAGS RA RO RM HOTPLUG MODEL SERIAL SIZE
+ STATE OWNER GROUP MODE ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC
+ ROTA SCHED RQ-SIZE TYPE DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
+ WSAME WWN RAND PKNAME HCTL TRAN SUBSYSTEMS REV VENDOR
+ "
case $prev in
'-e'|'--exclude'|'-I'|'--include')
prefix="${cur%$realcur}"
for I in /sys/dev/block/*; do
J=${I##*/}
- MAJOR_ALL="$MAJOR_ALL ${J%%:*}"
+ MAJOR_ALL="${MAJOR_ALL:-""} ${J%%:*}"
done
- for WORD in $MAJOR_ALL; do
+ for WORD in ${MAJOR_ALL:-""}; do
if ! [[ $prefix == *"$WORD"* ]]; then
- MAJOR="$WORD $MAJOR"
+ MAJOR="$WORD ${MAJOR:-""}"
fi
done
compopt -o nospace
- COMPREPLY=( $(compgen -P "$prefix" -W "$MAJOR" -S ',' -- $realcur) )
+ COMPREPLY=( $(compgen -P "$prefix" -W "${MAJOR:-""}" -S ',' -- $realcur) )
return 0
;;
- '-o'|'--output')
+ '-o'|'--output'|'-M'|'--dedup')
local prefix realcur LSBLK_COLS
realcur="${cur##*,}"
prefix="${cur%$realcur}"
for WORD in $LSBLK_COLS_ALL; do
if ! [[ $prefix == *"$WORD"* ]]; then
- LSBLK_COLS="$WORD $LSBLK_COLS"
+ LSBLK_COLS="$WORD ${LSBLK_COLS:-""}"
fi
done
compopt -o nospace
--fs
--help
--include
+ --json
--ascii
--list
+ --dedup
+ --merge
--perms
--noheadings
--output
+ --output-all
+ --paths
--pairs
--raw
--inverse
return 0
;;
esac
- local DEVS
+ compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$($1 -pnro name)" -- $cur) )
return 0
}