From b63339088fd3c6e2d20b3bab47cd73d31ab821e2 Mon Sep 17 00:00:00 2001 From: me Date: Tue, 20 Feb 2024 14:33:46 +0100 Subject: [PATCH] feat(completions/ssh): add support for ssh completion using files in .ssh/config.d too --- completions/ssh.completion.sh | 8 ++++++++ 1 file changed, 8 insertions(+) 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