summaryrefslogtreecommitdiff
path: root/Completion/Linux/Command/_sshfs
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Linux/Command/_sshfs')
-rw-r--r--Completion/Linux/Command/_sshfs31
1 files changed, 28 insertions, 3 deletions
diff --git a/Completion/Linux/Command/_sshfs b/Completion/Linux/Command/_sshfs
index c6a8e102d..534e806e3 100644
--- a/Completion/Linux/Command/_sshfs
+++ b/Completion/Linux/Command/_sshfs
@@ -1,14 +1,39 @@
#compdef sshfs
-_arguments \
+local context 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:_values -s , "sshfs or fuse or mount options" reconnect sshfs_sync no_readahead sshfs_debug cache=:cache\ setting:(yes no) cache_timeout=:seconds: cache_stat_timeout=:seconds: cache_dir_timeout=:seconds: cache_link_timeout=:seconds: 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' \
+ '-o:options:->options' \
'-d[debug]' \
'-f[foreground]' \
'-s[disable multithreaded operation]' \
'-r[mount read-only]' \
'-h[help]' \
':remote directory:_user_at_host -S:' \
- ':mountpoint:_files -/'
+ ':mountpoint:_files -/' && ret=0
+
+if [[ $state == options ]]; then
+ _values -s , "sshfs or fuse or mount options" \
+ reconnect sshfs_sync no_readahead sshfs_debug \
+ 'cache:cache setting:(yes no)' \
+ cache_timeout:seconds: \
+ cache_stat_timeout:seconds: \
+ cache_dir_timeout:seconds: \
+ cache_link_timeout:seconds: \
+ '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
+fi
+
+return ret