Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: update sshfs completion



Update for new options up to sshfs 2.8
Ideally, ssh options would also be completed.

Oliver

diff --git a/Completion/Linux/Command/_sshfs b/Completion/Linux/Command/_sshfs
index 534e806e3..fe976288d 100644
--- a/Completion/Linux/Command/_sshfs
+++ b/Completion/Linux/Command/_sshfs
@@ -1,39 +1,65 @@
 #compdef sshfs
 
-local context state state_descr line
+local curcontext="$curcontext" state state_descr line
 typeset -A opt_args
-local curcontext="$curcontext"
 integer ret=1
 
 _arguments -C \
-  '-V[version]' \
-  '-p:tcp port:' \
-  '-C[compression]' \
-  '-o:options:->options' \
-  '-d[debug]' \
+  '(-)'{-h,--help}'[display help information]' \
+  '(-)'{-V,--version}'[display version information]' \
+  '-p[specify TCP port]:tcp port:_ports' \
+  '-C[enable compression]' \
+  '-F[specify ssh config file]:file:_files' \
+  '-o[specify mount options]:options:->options' \
+  '(-f)-d[enable debug output]' \
   '-f[foreground]' \
   '-s[disable multithreaded operation]' \
-  '-r[mount read-only]' \
-  '-h[help]' \
   ':remote directory:_user_at_host -S:' \
   ':mountpoint:_files -/' && ret=0
 
 if [[ $state == options ]]; then
   _values -s , "sshfs or fuse or mount options" \
-    reconnect sshfs_sync no_readahead sshfs_debug \
+    debug reconnect delay_connect sshfs_sync no_readahead sync_readdir sshfs_debug \
     'cache:cache setting:(yes no)' \
-    cache_timeout:seconds: \
-    cache_stat_timeout:seconds: \
-    cache_dir_timeout:seconds: \
-    cache_link_timeout:seconds: \
+    'cache_max_size:size [10000]' \
+    'cache_timeout:timeout (seconds) [20]' \
+    cache_{stat,dir,link}_timeout:'timeout (seconds)' \
+    'cache_clean_interval:interval [60]' \
+    'cache_min_clean_interval:interval [5]' \
+    'workaround:workaround:(none all rename delaysrv truncate nobuflimit)' \
+    'idmap:user/group mapping:(none user file)' \
+    uidfile:file:_files \
+    gidfile:file:_files \
+    'nomap:type:(ignore error)' \
     'ssh_command:ssh command:_command_names' \
-    directport:port: \
-    'SSHOPT:ssh option:' \
-    default_permissions allow_other allow_root kernel_cache large_read direct_io \
-    max_read:size: \
-    hard_remove debug \
-    fs_name:name: \
-    use_ino readdir_ino && ret=0
+    'ssh_protocol:version:(1 2)' \
+    sftp_server:path:_files \
+    directport:port:_ports \
+    slave disable_hardlink transform_symlinks follow_symlinks no_check_root password_stdin \
+    allow_other allow_root auto_unmount nonempty default_permissions \
+    fsname:filesystem\ name \
+    subtype:filesystem\ type \
+    large_read \
+    max_read:max\ size \
+    hard_remove use_ino readdir_ino direct_io kernel_cache auto_cache \
+    'umask:permissions' \
+    'uid:owner' 'gid:group' \
+    'entry_timeout:timeout (seconds) [1]' \
+    'negative_timeout:timeout (seconds) [0]' \
+    'attr_timeout:timeout (seconds) [1]' \
+    'ac_attr_timeout:timeout (seconds) [= attr_timeout]' \
+    noforget \
+    'remember:time (seconds)' \
+    nopath intr \
+    'intr_signal:signal [10]' \
+    modules:module \
+    max_write:size \
+    max_readahead:readahead \
+    max_background:number \
+    congestion_threshold:threshold \
+    async_read sync_read atomic_o_trunc big_writes no_remote_lock no_remote_flock \
+    no_remote_posix_lock splice_write splice_move splice_read \
+    from_code:charset to_code:charset subdir:_directories rellinks && ret=0
 fi
 
 return ret



Messages sorted by: Reverse Date, Date, Thread, Author