50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea

Author
Gam <1348187+Y3K@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

fix(ssh): allow multiple definitions per host (#12227)

Diff

 1diff --git a/plugins/ssh/ssh.plugin.zsh b/plugins/ssh/ssh.plugin.zsh
 2index 085e71fa1c0b445b38a8a6655e0cb68151a1ec60..b5b050536afa236c1022270571ad9528c9cf53ac 100644
 3--- a/plugins/ssh/ssh.plugin.zsh
 4+++ b/plugins/ssh/ssh.plugin.zsh
 5@@ -4,9 +4,16 @@
 6 # Filter out wildcard host sections.
 7 _ssh_configfile="$HOME/.ssh/config"
 8 if [[ -f "$_ssh_configfile" ]]; then
 9-  _hosts=($(egrep '^Host.*' "$_ssh_configfile" | awk '{print $2}' | grep -v '^*' | sed -e 's/\.*\*$//'))
10-  zstyle ':completion:*:hosts' hosts $_hosts
11-  unset _hosts
12+  _ssh_hosts=($(
13+    egrep '^Host.*' "$_ssh_configfile" |\
14+    awk '{for (i=2; i<=NF; i++) print $i}' |\
15+    sort |\
16+    uniq |\
17+    grep -v '^*' |\
18+    sed -e 's/\.*\*$//'
19+  ))
20+  zstyle ':completion:*:hosts' hosts $_ssh_hosts
21+  unset _ssh_hosts
22 fi
23 unset _ssh_configfile
24