From: Andy Shen Date: Sat, 4 Dec 2010 00:03:33 +0000 (+1100) Subject: ssh completion using .ssh/config X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=e0d8582c0b3ba1f551ff7c60d4363a2fe2f6b428;p=common%2Fbash_it.git ssh completion using .ssh/config --- diff --git a/completion/ssh.completion.bash b/completion/ssh.completion.bash new file mode 100644 index 0000000..7691333 --- /dev/null +++ b/completion/ssh.completion.bash @@ -0,0 +1,13 @@ +#!/bin/bash +# Bash completion support for ssh. + +export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/} + +_sshcomplete() { + if [ -f $HOME/.ssh/config ]; then + COMPREPLY=($(compgen -W "`ruby -e"puts open('${HOME}/.ssh/config', 'r') { |f| f.readlines }.find_all { |l| l =~ /^Host/ }.inject([]) { |hosts, line| hosts << line[5..-1].split }.flatten.sort.uniq"`" -- ${COMP_WORDS[COMP_CWORD]})) + return 0 + fi +} + +complete -o default -o nospace -F _sshcomplete ssh