mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-10 16:31:27 +02:00
41 lines
1.7 KiB
Text
41 lines
1.7 KiB
Text
#compdef mosh
|
|
|
|
local curcontext="$curcontext" state line expl ret=1
|
|
local -a _comp_priv_prefix
|
|
|
|
_arguments -C \
|
|
'(-)--help[display help information]' \
|
|
'(-)--version[display version information]' \
|
|
"--no-init[don't set terminal init string]" \
|
|
'--ssh=[specify ssh command to setup session]:ssh command:_normal' \
|
|
'--port=[specify server-side port range]:port:_sequence -n 2 -s \: _ports' \
|
|
'(-a -n)--predict=[control speculative local echo]:mode:(adaptive always never)' \
|
|
'(--predict -n)-a[synonym for --predict=always]' \
|
|
'(--predict -a)-n[synonym for --predict=never]' \
|
|
'(--family -6)-4[use IPv4 only]' \
|
|
'(--family -4)-6[use IPv6 only]' \
|
|
'(-4 -6)--family=[specify address family]:family [prefer-inet]:(inet inet6 auto all prefer-inet prefer-inet6)' \
|
|
'--bind-server=[ask the server to reply from an IP address]:{ssh|any|IP}' \
|
|
'--server[specify command to run server helper]:remote file:_files' \
|
|
'--client[specify command to run client helper]:_command_names -e' \
|
|
"--no-ssh-pty[don't allocate a pseudo tty on ssh connection]" \
|
|
'--local[run mosh-server locally without using ssh]' \
|
|
'--experimental-remote-ip=[select method for discovering remote IP address to use for mosh]:method:(local remote proxy)' \
|
|
'1:remote host name:->userhost' \
|
|
'*:::args:_normal' && ret=0
|
|
|
|
case $state in
|
|
userhost)
|
|
if compset -P '*@'; then
|
|
_wanted hosts expl 'remote host name' _ssh_hosts && ret=0
|
|
elif compset -S '@*'; then
|
|
_wanted users expl 'login name' _combination -s '[:@]' my-accounts users-hosts users -S '' && ret=0
|
|
else
|
|
_alternative \
|
|
'hosts:remote host name:_ssh_hosts' \
|
|
'users:login name:_combination -s "[:@]" my-accounts users-hosts users -qS@' && ret=0
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
return ret
|