about summary refs log tree commit diff
path: root/Completion/Unix/Type/_file_systems
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Type/_file_systems')
-rw-r--r--Completion/Unix/Type/_file_systems37
1 files changed, 37 insertions, 0 deletions
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
+
+
+ 
+
+
+
+
+