]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - bash-completion/lsblk
su: use lib/pty-session.c code for --pty
[thirdparty/util-linux.git] / bash-completion / lsblk
index 1692dade8b07ded6352538b40daf8276e3facffa..e54fc4d5e58078f2d30e1c75533bd47bdf1913fc 100644 (file)
@@ -1,18 +1,17 @@
 _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')
@@ -21,24 +20,24 @@ _lsblk_module()
                        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
@@ -64,11 +63,16 @@ _lsblk_module()
                                --fs
                                --help
                                --include
+                               --json
                                --ascii
                                --list
+                               --dedup
+                               --merge
                                --perms
                                --noheadings
                                --output
+                               --output-all
+                               --paths
                                --pairs
                                --raw
                                --inverse
@@ -81,7 +85,7 @@ _lsblk_module()
                        return 0
                        ;;
        esac
-       local DEVS
+       compopt -o bashdefault -o default
        COMPREPLY=( $(compgen -W "$($1 -pnro name)" -- $cur) )
        return 0
 }