summaryrefslogtreecommitdiffstats
path: root/bash-completion/findmnt
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/findmnt
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/findmnt')
-rw-r--r--bash-completion/findmnt121
1 files changed, 121 insertions, 0 deletions
diff --git a/bash-completion/findmnt b/bash-completion/findmnt
new file mode 100644
index 000000000..c2dfa21b2
--- /dev/null
+++ b/bash-completion/findmnt
@@ -0,0 +1,121 @@
+_findmnt_module()
+{
+ local cur prev OPTS
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ case $prev in
+ '-p'|'--poll')
+ COMPREPLY=( $(compgen -W "=list" -- $cur) )
+ return 0
+ ;;
+ '-w'|'--timeout')
+ COMPREPLY=( $(compgen -W "timeout" -- $cur) )
+ return 0
+ ;;
+ '-d'|'--direction')
+ COMPREPLY=( $(compgen -W "forward backward" -- $cur) )
+ return 0
+ ;;
+ '-F'|'--tab-file')
+ compopt -o filenames
+ COMPREPLY=( $(compgen -f -- $cur) )
+ return 0
+ ;;
+ '-N'|'--task')
+ local TID='' I ARR
+ for I in /proc/*/mountinfo; do IFS=/ read -ra ARR <<< "$I"; TID+="${ARR[2]} "; done
+ COMPREPLY=( $(compgen -W "$TID" -- $cur) )
+ return 0
+ ;;
+ '-O'|'--options')
+ local MTAB_3RD I
+ declare -a TMP_ARR
+ declare -A MNT_OPTS
+ while read MTAB_3RD; do
+ IFS=',' read -ra TMP_ARR <<<"$MTAB_3RD"
+ for I in ${TMP_ARR[@]}; do
+ MNT_OPTS[$I]='1'
+ done
+ done < <(findmnt -rno OPTIONS)
+ COMPREPLY=( $(compgen -W "$(echo ${!MNT_OPTS[@]})" -- $cur) )
+ return 0
+ ;;
+ '-o'|'--output')
+ # FIXME: how to append to a string with compgen?
+ local OUTPUT
+ OUTPUT="SOURCE TARGET FSTYPE OPTIONS VFS-OPTIONS
+ FS-OPTIONS LABEL UUID PARTLABEL PARTUUID
+ MAJ\:MIN ACTION OLD-TARGET OLD-OPTIONS
+ SIZE AVAIL USED USE% FSROOT TID ID
+ OPT-FIELDS PROPAGATION FREQ PASSNO"
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) )
+ return 0
+ ;;
+ '-t'|'--types')
+ local TYPES
+ TYPES="adfs affs autofs cifs coda coherent cramfs
+ debugfs devpts efs ext ext2 ext3 ext4 hfs
+ hfsplus hpfs iso9660 jfs minix msdos
+ ncpfs nfs nfs4 ntfs proc qnx4 ramfs
+ reiserfs romfs squashfs smbfs sysv tmpfs
+ ubifs udf ufs umsdos usbfs vfat xenix xfs
+ xiafs"
+ COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
+ return 0
+ ;;
+ '-S'|'--source')
+ local DEV_MPOINT
+ DEV_MPOINT=$(findmnt -rno SOURCE | grep ^/dev)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+ ;;
+ '-T'|'--target')
+ local DEV_MPOINT
+ DEV_MPOINT=$(findmnt -rno TARGET)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+ ;;
+ esac
+ case $cur in
+ -*)
+ OPTS="-s --fstab
+ -m --mtab
+ -k --kernel
+ -p --poll
+ -w --timeout
+ -A --all
+ -a --ascii
+ -c --canonicalize
+ -D --df
+ -d --direction
+ -e --evaluate
+ -F --tab-file
+ -f --first-only
+ -i --invert
+ -l --list
+ -N --task
+ -n --noheadings
+ -u --notruncate
+ -O --options
+ -o --output
+ -P --pairs
+ -r --raw
+ -t --types
+ -v --nofsroot
+ -R --submounts
+ -S --source
+ -T --target
+ -h --help
+ -V --version"
+ COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+ return 0
+ ;;
+ esac
+ local DEV_MPOINT
+ DEV_MPOINT=$(findmnt -rno TARGET,SOURCE)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+}
+complete -F _findmnt_module findmnt