summaryrefslogtreecommitdiffstats
path: root/shell-completion/lsblk
diff options
context:
space:
mode:
authorSami Kerola2013-03-23 18:41:32 +0100
committerSami Kerola2013-04-01 18:41:50 +0200
commit76dceb10a19be9bbfd667cfd02baba59626803d8 (patch)
tree131dceda3aed8ac3015f67b13d529fe6cbfaeb22 /shell-completion/lsblk
parentbash-completion: login-utils (diff)
downloadkernel-qcow2-util-linux-76dceb10a19be9bbfd667cfd02baba59626803d8.tar.gz
kernel-qcow2-util-linux-76dceb10a19be9bbfd667cfd02baba59626803d8.tar.xz
kernel-qcow2-util-linux-76dceb10a19be9bbfd667cfd02baba59626803d8.zip
bash-completion: misc-utils
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'shell-completion/lsblk')
-rw-r--r--shell-completion/lsblk65
1 files changed, 65 insertions, 0 deletions
diff --git a/shell-completion/lsblk b/shell-completion/lsblk
new file mode 100644
index 000000000..54981992c
--- /dev/null
+++ b/shell-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