dot-files/bash/ensure-ssh-agent
Buddy Sandidge c448b945fa Update ensure-ssh-agent for environments without a runtime dir
On macOS a XDG_RUNTIME is not set. Use a temp file instead if on macOS
2020-01-24 13:20:13 -08:00

27 lines
593 B
Bash

#!/usr/bin/env bash
function tmp-if-needed {
tmpdir=/tmp/ssh-env-$(whoami)
[[ -d $tmpdir ]] || mkdir $tmpdir
chmod 700 "$tmpdir"
chown $(whoami) "$tmpdir"
echo $tmpdir
}
ENVFILE="${XDG_RUNTIME_DIR:-$(tmp-if-needed)}/ssh-agent.env"
if [ -f $ENVFILE ] ; then
. $ENVFILE > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
eval $(ssh-agent | tee $ENVFILE)
chmod 700 "$ENVFILE"
chown $(whoami) "$ENVFILE"
ssh-add
fi
else
eval $(ssh-agent | tee $ENVFILE)
chmod 700 "$ENVFILE"
chown $(whoami) "$ENVFILE"
ssh-add
fi