X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.profile.d%2Fcompletion.bashrc;h=663b56ddd6ef42f98b563bd8c4054b58792e6200;hp=633c86c9b774d60b6d83b35783d506f5be54dc7b;hb=756cfebbb2ef97127f5d5c0ff2254c1e16441d9b;hpb=7ff1edff9e3b22a1fd1f7798a634538d7ed94c54 diff --git a/.profile.d/completion.bashrc b/.profile.d/completion.bashrc index 633c86c..663b56d 100644 --- a/.profile.d/completion.bashrc +++ b/.profile.d/completion.bashrc @@ -1,3 +1,4 @@ +# $Id$ # Helper! export COMPLETION_DIR_SSH=~/.ssh/hosts export COMPLETION_DIR_TELNET=~/.telnet/hosts @@ -9,7 +10,7 @@ function _generic_completion() { COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} - HOSTS="$(find $COMPLETION_DIR -type f -perm -100 | sed 's@.*/@@')" + HOSTS="$(find $COMPLETION_DIR -type f -perm -100 2>/dev/null | sed 's@.*/@@')" COMPREPLY=($(compgen -W "$HOSTS" -- "$cur")) return 0 @@ -25,11 +26,21 @@ function _process() { return 0 } +# Host completion for SSH known hosts. +function _known_hosts() { + cur=${COMP_WORDS[COMP_CWORD]} + + HOSTS=$(sed 's/[ ].*//;s/,/\n/' ~/.ssh/known_hosts) + + COMPREPLY=($(compgen -W "$HOSTS" -- "$cur")) + return 0 +} + # Process completion for kill, strace etc. function _pid() { cur=${COMP_WORDS[COMP_CWORD]} - PROCESSES="$(find /proc -name '[0-9]*' -maxdepth 1 | sed 's@.*/@@')" + PROCESSES="$(find /proc -name '[0-9]*' -maxdepth 1 2>/dev/null | sed 's@.*/@@')" COMPREPLY=($(compgen -W "$PROCESSES" -- "$cur")) return 0 @@ -82,3 +93,4 @@ complete -F _make make complete -F _process killall complete -F _pid kill complete -F _pid strace +complete -F _known_hosts kill_known_host