Initial commit.
This commit is contained in:
32
bin/link-ssh-agent
Executable file
32
bin/link-ssh-agent
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check to see if we at least have an agent running, and have previously
|
||||
# saved exports.
|
||||
if [ ! `pgrep -n ssh-agent` ] || [ ! -f ~/temp/ssh-agent-exports.sh ]
|
||||
then
|
||||
# If not, create a new agent and save the details.
|
||||
echo $(ssh-agent) > ~/temp/ssh-agent-exports.sh
|
||||
chmod +x ~/temp/ssh-agent-exports.sh
|
||||
|
||||
# If we do have previous details and a running agent, make sure that
|
||||
# the details match an available agent (and not one that was killed).
|
||||
elif [[ `(source ~/temp/ssh-agent-exports.sh; ssh-add -l 2>&1)` =~ "Could not open" ]]
|
||||
then
|
||||
# If the current details are for a dead agent, create a new agent and
|
||||
# save the details.
|
||||
echo $(ssh-agent) > ~/temp/ssh-agent-exports.sh
|
||||
chmod +x ~/temp/ssh-agent-exports.sh
|
||||
fi
|
||||
|
||||
# Finally, if we were called without an argument, echo the current settings.
|
||||
if [ "$1" = "" ]
|
||||
then
|
||||
cat ~/temp/ssh-agent-exports.sh
|
||||
# If we do have an argument then evaluate that argument in a new shell which
|
||||
# has the SSH agent defined.
|
||||
else
|
||||
(
|
||||
source ~/temp/ssh-agent-exports.sh
|
||||
eval $1
|
||||
)
|
||||
fi
|
Reference in New Issue
Block a user