summaryrefslogtreecommitdiffstats
path: root/bash-completion/mount
diff options
context:
space:
mode:
Diffstat (limited to 'bash-completion/mount')
-rw-r--r--bash-completion/mount31
1 files changed, 13 insertions, 18 deletions
diff --git a/bash-completion/mount b/bash-completion/mount
index e4a98adf6..9a3391339 100644
--- a/bash-completion/mount
+++ b/bash-completion/mount
@@ -6,25 +6,20 @@ _mount_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-t'|'--types')
- local TYPES
+ local prefix realcur TYPES
TYPES="
-adfs noadfs hfsplus nohfsplus smbfs nosmbfs
-affs noaffs hpfs nohpfs squashfs nosquashfs
-autofs noautofs iso9660 noiso9660 sysv nosysv
-cifs nocifs jfs nojfs tmpfs notmpfs
-coda nocoda minix nominix ubifs noubifs
-coherent nocoherent msdos nomsdos udf noudf
-cramfs nocramfs ncpfs noncpfs ufs noufs
-debugfs nodebugfs nfs nonfs umsdos noumsdos
-devpts nodevpts nfs4 nonfs4 usbfs nousbfs
-efs noefs ntfs nontfs vfat novfat
- proc noproc xenix noxenix
-ext2 noext2 qnx4 noqnx4 xfs noxfs
-ext3 noext3 ramfs noramfs
-ext4 noext4 reiserfs noreiserfs
-hfs nohfs romfs noromfs
-"
- COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
+ $(\ls /lib/modules/$(uname -r)/kernel/fs | awk '{print $1, "no" $1}')
+ $(awk '{print $NF, "no" $NF}' /proc/filesystems)
+ "
+ realcur="${cur##*,}"
+ prefix="${cur%$realcur}"
+ for WORD in $TYPES; do
+ if ! [[ $prefix == *"$WORD"* ]]; then
+ TYPE_COLS="$WORD $TYPE_COLS"
+ fi
+ done
+ compopt -o nospace
+ COMPREPLY=( $(compgen -P "$prefix" -W "$TYPE_COLS" -S ',' -- $realcur) )
return 0
;;
'-L'|'--label')