From 78c498391af5ba8b00706dfc2fd9ce6c9b0204f2 Mon Sep 17 00:00:00 2001 From: GrĂ©goire DuchĂȘne Date: Sun, 14 Mar 2021 11:13:52 +0000 Subject: zsh/op-ssh-add: Trap cleanup code --- zsh/functions/op-ssh-add | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'zsh') diff --git a/zsh/functions/op-ssh-add b/zsh/functions/op-ssh-add index 646b7f7..90cff9a 100644 --- a/zsh/functions/op-ssh-add +++ b/zsh/functions/op-ssh-add @@ -34,13 +34,22 @@ local session=$(op signin --raw) if [[ -z ${session} ]]; then return 1 fi + zmodload zsh/zpty zpty ssh $(which -p ssh-add) ${prv} -zpty -w ssh $(op list items --session ${session} --tags SSH \ + +_cleanup() { + zpty -d ssh + op signout --session $1 + trap - + unfunction _cleanup +} +trap "_cleanup ${session}" EXIT HUP INT TERM + +zpty -w ssh $(trap - + op list items --session ${session} --tags SSH \ | op get item \ --fields fingerprint,password \ --session ${session} - \ | jq -jr "select(.fingerprint == \"${fp}\") | .password") zpty -r ssh -zpty -d ssh -op signout --session ${session} -- cgit v1.2.3-70-g09d2