diff options
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r-- | Completion/Unix/Type/.distfiles | 1 | ||||
-rw-r--r-- | Completion/Unix/Type/_file_systems | 37 |
2 files changed, 38 insertions, 0 deletions
diff --git a/Completion/Unix/Type/.distfiles b/Completion/Unix/Type/.distfiles index 2d8162d13..dfb856bcb 100644 --- a/Completion/Unix/Type/.distfiles +++ b/Completion/Unix/Type/.distfiles @@ -8,4 +8,5 @@ _domains _path_files _ps _user_at_host _files _pdf _pspdf _users _groups _perl_basepods _signals _users_on _hosts _perl_builtin_funcs _tar_archive _time_zone +_file_systems ' diff --git a/Completion/Unix/Type/_file_systems b/Completion/Unix/Type/_file_systems new file mode 100644 index 000000000..b977ac79c --- /dev/null +++ b/Completion/Unix/Type/_file_systems @@ -0,0 +1,37 @@ +#autoload + +local fss + +case $OSTYPE in + aix*) fss=( jfs nfs cdrfs ) ;; + irix*) fss=( efs proc fd nfs iso9660 dos hfs cachefs xfs ) ;; + linux*) + typeset -aU fss + fss=( adfs bfs cramfs ext2 ext3 hfs hpfs iso9660 minix ntfs qnx4 + reiserfs romfs swap udf ufs vxfs xfs xiafs ) + [[ -r /proc/filesystems ]] && + fss=( $fss ${$(</proc/filesystems)#nodev} ) + [[ -r /etc/filesystems ]] && + fss=( $fss ${$(</etc/filesystems)#nodev} ) + ;; + osf*) fss=( advfs ufs nfs mfs cdfs ) ;; + solaris*) fss=( ufs nfs hsfs s5fs pcfs cachefs tmpfs ) ;; + freebsd*) + fss=( cd9660 devfs ext2fs fdesc kernfs linprocfs mfs msdos nfs + ntfs null nwfs portal procfs std ufs umap union ) + ;; + *) + # default for all other systems + fss=( ufs) + ;; +esac + +_wanted types expl 'file system type' compadd "$@" -M 'L:|no=' -a fss + + + + + + + + |