# -*- mode: shell-script -*- # # Complete private key files for ssh-add using files found from ~/.ssh # Copyright 2009 Daniel Black # License: PUBLIC-DOMAIN _ssh-add() { local cur pkeys [ -r ~/.ssh/ ] || return 0 COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [ -z "${cur}" ] then pkeys=$(grep -m 1 -s -l '^-----BEGIN [RD]SA PRIVATE KEY-----' ~/.ssh/* ) else local files=$(compgen -f -- "${cur}" ; compgen -f -- ~/.ssh/"${cur}" ) if [ -n "${files}" ] then pkeys=$(grep -m 1 -s -l '^-----BEGIN [RD]SA PRIVATE KEY-----' ${files} ) fi fi if [ -n "${pkeys}" ] then COMPREPLY=( $(compgen -o filenames -W "${pkeys}" -- "${cur}" ; \ compgen -o filenames -W "${pkeys}" -- ~/.ssh/"${cur}" ) ) fi return 0 } complete -F _ssh-add -o plusdirs ssh-add