about summary refs log tree commit diff
path: root/Completion/Unix/Type
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r--Completion/Unix/Type/.distfiles1
-rw-r--r--Completion/Unix/Type/_file_systems37
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
+
+
+ 
+
+
+
+
+