From 20da58084a68b118b15fa01228192463b61fa28f Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 5 Apr 2013 14:58:07 +0200 Subject: bash-completion: rename shell-completion -> bash-completion Signed-off-by: Karel Zak --- bash-completion/findmnt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 bash-completion/findmnt (limited to 'bash-completion/findmnt') 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 -- cgit v1.2.3-55-g7522