142 lines
3.1 KiB
Plaintext
142 lines
3.1 KiB
Plaintext
_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
|
|
--pairs
|
|
--raw
|
|
--types
|
|
--nofsroot
|
|
--submounts
|
|
--source
|
|
--target
|
|
--mountpoint
|
|
--help
|
|
--tree
|
|
--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
|