diff --git a/completions/ssh.completion.sh b/completions/ssh.completion.sh index fe01b1f..f676c0f 100644 --- a/completions/ssh.completion.sh +++ b/completions/ssh.completion.sh @@ -5,6 +5,7 @@ _omb_module_require lib:omb-completion function _omb_completion_ssh { local cur + local file_in_config_d _omb_completion_reassemble_breaks : if [[ $cur == *@* ]] ; then @@ -18,6 +19,13 @@ function _omb_completion_ssh { COMPREPLY=($(compgen -W "$(grep ^Host "$HOME/.ssh/config" | awk '{for (i=2; i<=NF; i++) print $i}' )" "${options[@]}")) fi + # parse all defined hosts from .ssh/config.d/* + if [[ -d $HOME/.ssh/config.d ]]; then + for file_in_config_d in "$HOME/.ssh/config.d/"* ;do + [[ -s "$file_in_config_d" ]] &&COMPREPLY+=($(compgen -W "$(grep ^Host "$file_in_config_d" | awk '{for (i=2; i<=NF; i++) print $i}' )" "${options[@]}")) + done + fi + # parse all hosts found in .ssh/known_hosts if [[ -r $HOME/.ssh/known_hosts ]]; then if grep -v -q -e '^ ssh-rsa' "$HOME/.ssh/known_hosts" ; then