summaryrefslogtreecommitdiff
path: root/functions/_mosh
blob: b8e7e49b19df6f26ba9d0cb1f9e14af54bbcc6e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#compdef mosh

# load ssh completions to use _ssh_hosts
_ssh

local curcontext="$curcontext" state line
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]' \
  '--server[specify command to run server helper]:remote file:_files' \
  '--client[specify command to run client helper]:_command_names -e' \
  '1:remote host name:->userhost' \
  '*:::args:_normal' && return

case $state in
  userhost)
    _ssh_hosts || _user_at_host && return
  ;;
esac

return 1