2013-03-23 12:41:32 -05:00
|
|
|
_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')
|
2013-09-30 08:49:00 -05:00
|
|
|
local IFS=$'\n'
|
2013-03-23 12:41:32 -05:00
|
|
|
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)
|
2013-04-07 03:12:05 -05:00
|
|
|
COMPREPLY=( $(compgen -W "${!MNT_OPTS[@]}" -- $cur) )
|
2013-03-23 12:41:32 -05:00
|
|
|
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
|
2014-07-25 07:55:03 -05:00
|
|
|
ubifs udf ufs umsdos usbfs vfat xenix xfs"
|
2013-03-23 12:41:32 -05:00
|
|
|
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
|
|
|
|
;;
|
2013-04-07 03:12:04 -05:00
|
|
|
'-h'|'--help'|'-V'|'--version')
|
|
|
|
return 0
|
|
|
|
;;
|
2013-03-23 12:41:32 -05:00
|
|
|
esac
|
|
|
|
case $cur in
|
|
|
|
-*)
|
2013-04-07 03:12:08 -05:00
|
|
|
OPTS="--fstab
|
|
|
|
--mtab
|
|
|
|
--kernel
|
|
|
|
--poll
|
|
|
|
--timeout
|
|
|
|
--all
|
|
|
|
--ascii
|
|
|
|
--canonicalize
|
|
|
|
--df
|
|
|
|
--direction
|
|
|
|
--evaluate
|
|
|
|
--tab-file
|
|
|
|
--first-only
|
|
|
|
--invert
|
|
|
|
--list
|
|
|
|
--task
|
|
|
|
--noheadings
|
|
|
|
--notruncate
|
|
|
|
--options
|
|
|
|
--output
|
|
|
|
--pairs
|
|
|
|
--raw
|
|
|
|
--types
|
|
|
|
--nofsroot
|
|
|
|
--submounts
|
|
|
|
--source
|
|
|
|
--target
|
|
|
|
--help
|
|
|
|
--version"
|
2013-03-23 12:41:32 -05:00
|
|
|
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
|