summaryrefslogtreecommitdiffstats
path: root/bash-completion/lsblk
diff options
context:
space:
mode:
authorKarel Zak2013-04-05 14:58:07 +0200
committerKarel Zak2013-04-05 14:58:07 +0200
commit20da58084a68b118b15fa01228192463b61fa28f (patch)
tree07beea113d5a68749264ad59e4d17fbc4bf9fe1d /bash-completion/lsblk
parentMerge branch 'shell-completion' of git://github.com/kerolasa/lelux-utiliteetit (diff)
downloadkernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.tar.gz
kernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.tar.xz
kernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.zip
bash-completion: rename shell-completion -> bash-completion
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'bash-completion/lsblk')
-rw-r--r--bash-completion/lsblk65
1 files changed, 65 insertions, 0 deletions
diff --git a/bash-completion/lsblk b/bash-completion/lsblk
new file mode 100644
index 000000000..54981992c
--- /dev/null
+++ b/bash-completion/lsblk
@@ -0,0 +1,65 @@
+_lsblk_module()
+{
+ local cur prev OPTS
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ case $prev in
+ '-e'|'--exclude'|'-I'|'--include')
+ local MAJOR I J
+ MAJOR=''
+ for I in /sys/dev/block/*; do
+ J=${I##*/}
+ MAJOR="$MAJOR ${J%%:*}"
+ done
+ # FIXME: how to append to a string with compgen?
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W "$MAJOR" -S ',' -- $cur) )
+ return 0
+ ;;
+ '-o'|'--output')
+ # FIXME: how to append to a string with compgen?
+ OUTPUT="NAME KNAME MAJ:MIN FSTYPE MOUNTPOINT
+ LABEL UUID PARTLABEL PARTUUID 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"
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) )
+ return 0
+ ;;
+ esac
+ case $cur in
+ -*)
+ OPTS="-a --all
+ -b --bytes
+ -d --nodeps
+ -D --discard
+ -e --exclude
+ -I --include
+ -f --fs
+ -h --help
+ -i --ascii
+ -m --perms
+ -l --list
+ -n --noheadings
+ -o --output
+ -P --pairs
+ -r --raw
+ -s --inverse
+ -t --topology
+ -S --scsi
+ -h --help
+ -V --version"
+ COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+ return 0
+ ;;
+ esac
+ local DEVS
+ DEVS=''; while read dev; do DEVS+="$dev " ; done < <(lsblk -pnro name)
+ COMPREPLY=( $(compgen -W "$DEVS" -- $cur) )
+ return 0
+}
+complete -F _lsblk_module lsblk