# -*- mode: sh -*- if [[ ${@[1]} =~ '-[DdKLlTXx]' ]]; then $(which -p ssh-add) $@ return $? fi local prv pub for prv (${@[-1]} ~/.ssh/id_{ecdsa,ed25519}{,_sk}); do if [[ -f ${prv}.pub ]]; then pub=${prv}.pub break fi done if [[ -z ${pub} ]]; then $(which -p ssh-add) $@ return $? fi local session=$(op signin --raw) if [[ -z ${session} ]]; then return 1 fi zmodload zsh/zpty zpty ssh $(which -p ssh-add) $@ zpty -w ssh $(op get item \ $(cut -d' ' -f3 ${pub}) \ --fields password \ --session ${session}) zpty -r ssh zpty -d ssh op signout --session ${session}