summaryrefslogtreecommitdiffstats
path: root/bash-completion/findmnt
diff options
context:
space:
mode:
Diffstat (limited to 'bash-completion/findmnt')
-rw-r--r--bash-completion/findmnt144
1 files changed, 144 insertions, 0 deletions
diff --git a/bash-completion/findmnt b/bash-completion/findmnt
new file mode 100644
index 0000000..7270d36
--- /dev/null
+++ b/bash-completion/findmnt
@@ -0,0 +1,144 @@
+_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')
+ local IFS=$'\n'
+ 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 < <($1 -rno OPTIONS)
+ COMPREPLY=( $(compgen -W "${!MNT_OPTS[@]}" -- $cur) )
+ return 0
+ ;;
+ '-o'|'--output')
+ local prefix realcur OUTPUT_ALL OUTPUT
+ realcur="${cur##*,}"
+ prefix="${cur%$realcur}"
+
+ OUTPUT_ALL="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"
+
+ for WORD in $OUTPUT_ALL; do
+ if ! [[ $prefix == *"$WORD"* ]]; then
+ OUTPUT="$WORD ${OUTPUT:-""}"
+ fi
+ done
+ compopt -o nospace
+ COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- $realcur) )
+ return 0
+ ;;
+ '-t'|'--types')
+ local TYPES
+ TYPES="adfs affs autofs cifs coda coherent cramfs
+ debugfs devpts efs 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"
+ COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
+ return 0
+ ;;
+ '-S'|'--source')
+ local DEV_MPOINT
+ DEV_MPOINT=$($1 -rno SOURCE | grep ^/dev)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+ ;;
+ '-T'|'--target')
+ local DEV_MPOINT
+ DEV_MPOINT=$($1 -rno TARGET)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+ ;;
+ '-M'|'--mountpoint')
+ local IFS=$'\n'
+ compopt -o filenames
+ COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
+ return 0
+ ;;
+ '-h'|'--help'|'-V'|'--version')
+ return 0
+ ;;
+ esac
+ case $cur in
+ -*)
+ OPTS="--fstab
+ --mtab
+ --kernel
+ --poll
+ --timeout
+ --all
+ --ascii
+ --canonicalize
+ --df
+ --direction
+ --evaluate
+ --tab-file
+ --first-only
+ --invert
+ --json
+ --list
+ --task
+ --noheadings
+ --notruncate
+ --options
+ --output
+ --output-all
+ --pairs
+ --raw
+ --types
+ --nofsroot
+ --submounts
+ --source
+ --target
+ --mountpoint
+ --help
+ --tree
+ --real
+ --pseudo
+ --version"
+ COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+ return 0
+ ;;
+ esac
+ local DEV_MPOINT
+ DEV_MPOINT=$($1 -rno TARGET,SOURCE)
+ COMPREPLY=( $(compgen -W "$DEV_MPOINT" -- $cur) )
+ return 0
+}
+complete -F _findmnt_module findmnt