diff options
author | Marc Cornellà <hello@mcornella.com> | 2021-08-26 15:52:09 +0200 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-08-27 18:08:04 +0200 |
commit | 4a69ee575c9a8ec96fb6378fecae7777c7afba84 (patch) | |
tree | ba466e72624cad06e64514839f3aa879fe114724 /plugins/ssh-agent/ssh-agent.plugin.zsh | |
parent | 0c590aba74f28e94f03eb918c07a90cf1a51f525 (diff) | |
download | zsh-4a69ee575c9a8ec96fb6378fecae7777c7afba84.tar.gz zsh-4a69ee575c9a8ec96fb6378fecae7777c7afba84.tar.bz2 zsh-4a69ee575c9a8ec96fb6378fecae7777c7afba84.zip |
feat(ssh-agent): allow specifying absolute path to `identities`
Fixes #9650
Diffstat (limited to 'plugins/ssh-agent/ssh-agent.plugin.zsh')
-rw-r--r-- | plugins/ssh-agent/ssh-agent.plugin.zsh | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 2049145fd..c2b9546a2 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -23,12 +23,12 @@ function _start_agent() { } function _add_identities() { - local id line sig lines + local id file line sig lines local -a identities loaded_sigs loaded_ids not_loaded zstyle -a :omz:plugins:ssh-agent identities identities # check for .ssh folder presence - if [[ ! -d $HOME/.ssh ]]; then + if [[ ! -d "$HOME/.ssh" ]]; then return fi @@ -52,10 +52,12 @@ function _add_identities() { # add identities if not already loaded for id in $identities; do + # if id is an absolute path, make file equal to id + [[ "$id" = /* ]] && file="$id" || file="$HOME/.ssh/$id" # check for filename match, otherwise try for signature match - if [[ ${loaded_ids[(I)$HOME/.ssh/$id]} -le 0 ]]; then - sig="$(ssh-keygen -lf "$HOME/.ssh/$id" | awk '{print $2}')" - [[ ${loaded_sigs[(I)$sig]} -le 0 ]] && not_loaded+=("$HOME/.ssh/$id") + if [[ ${loaded_ids[(I)$file]} -le 0 ]]; then + sig="$(ssh-keygen -lf "$file" | awk '{print $2}')" + [[ ${loaded_sigs[(I)$sig]} -le 0 ]] && not_loaded+=("$file") fi done |