diff options
author | Oliver Kiddle <okiddle@yahoo.co.uk> | 2018-03-24 00:09:12 +0100 |
---|---|---|
committer | Oliver Kiddle <okiddle@yahoo.co.uk> | 2018-03-24 00:09:12 +0100 |
commit | 4977ec13982bc851668e85924e30a57c4e304b6e (patch) | |
tree | a8ecb5be3d0c51a366107d5c941a87e02fbd0e3e /Completion/Unix/Command/_ssh | |
parent | f1a52c23fa6c3c27c32b6a04d731b7d2c2f3c4b4 (diff) | |
download | zsh-4977ec13982bc851668e85924e30a57c4e304b6e.tar.gz zsh-4977ec13982bc851668e85924e30a57c4e304b6e.tar.xz zsh-4977ec13982bc851668e85924e30a57c4e304b6e.zip |
42491 based on 42000 (Andrei Shevchuk): factor ssh host completion for use for mosh and git
Diffstat (limited to 'Completion/Unix/Command/_ssh')
-rw-r--r-- | Completion/Unix/Command/_ssh | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh index 8a122a5b3..20a5536ee 100644 --- a/Completion/Unix/Command/_ssh +++ b/Completion/Unix/Command/_ssh @@ -647,46 +647,4 @@ _ssh_users () { _combination -s '[:@]' my-accounts users-hosts users "$@" } -_ssh_hosts () { - local -a config_hosts - local config - integer ind - - # If users-hosts matches, we shouldn't complete anything else. - if [[ "$IPREFIX" == *@ ]]; then - _combination -s '[:@]' my-accounts users-hosts "users=${IPREFIX/@}" hosts "$@" && return - else - _combination -s '[:@]' my-accounts users-hosts \ - ${opt_args[-l]:+"users=${opt_args[-l]:q}"} hosts "$@" && return - fi - if (( ind = ${words[(I)-F]} )); then - config=${~words[ind+1]} 2>/dev/null - else - config="$HOME/.ssh/config" - fi - if [[ -r $config ]]; then - local key line host - local -a lines=("${(@f)$(<"$config")}") 2>/dev/null - while (($#lines)); do - IFS=$'=\t ' read -r key line <<<"${lines[1]}" - case "$key" in - ((#i)include) - lines[1]=("${(@f)$(cd $HOME/.ssh; cat ${(z)~line})}") 2>/dev/null;; - ((#i)host(|name)) - for host in ${(z)line}; do - case $host in - (*[*?]*) ;; - (*) config_hosts+=("$host") ;; - esac - done ;& - (*) shift lines;; - esac - done - if (( ${#config_hosts} )); then - _wanted hosts expl 'remote host name' \ - compadd -M 'm:{a-zA-Z}={A-Za-z} r:|.=* r:|=*' "$@" $config_hosts - fi - fi -} - _ssh "$@" |