Add path support, to allow multiple agents to run (ie gitlab)
This commit is contained in:
parent
d8263c4260
commit
e09a929e60
12
agent-start
12
agent-start
|
@ -1,7 +1,17 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
STORE_PATH=/tmp
|
||||||
|
if [ ! -z "$1" ]; then
|
||||||
|
# This allows us to work with things like gitlab.
|
||||||
|
# where the same thing might be running concurrently.
|
||||||
|
# If default, it only stores in /tmp/, but if a path is added, it's interpolated.
|
||||||
|
STORE_PATH="$STORE_PATH/$1"
|
||||||
|
mkdir -p "$STORE_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
# Start the SSH agent if it isn't already.
|
# Start the SSH agent if it isn't already.
|
||||||
if [ -z "$SSH_AGENT_PID" ]; then
|
if [ -z "$SSH_AGENT_PID" ]; then
|
||||||
eval "$(ssh-agent)" > /dev/null
|
eval "$(ssh-agent)" > /dev/null
|
||||||
echo "$SSH_AGENT_PID" > /tmp/ssh-agent-id
|
echo "$SSH_AGENT_PID" > "$STORE_PATH"/ssh-agent-id
|
||||||
|
echo "$SSH_AUTH_SOCK" > "$STORE_PATH"/ssh-auth-sock
|
||||||
fi
|
fi
|
||||||
|
|
35
agent-stop
35
agent-stop
|
@ -1,16 +1,33 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
if [ ! -z "$SSH_AGENT_PID" ]; then
|
if [ ! -z "$SSH_AGENT_PID" ]; then
|
||||||
echo "Var Set"
|
# Here, the environment is set already, just kill the script.
|
||||||
ssh-agent -k
|
eval $(ssh-agent -k) >/dev/null
|
||||||
exit $?
|
|
||||||
elif [ -f "/tmp/ssh-agent-id" ]; then
|
|
||||||
echo "File Exists"
|
|
||||||
cat /tmp/ssh-agent-id
|
|
||||||
SSH_AGENT_PID=$(cat /tmp/ssh-agent-id)
|
|
||||||
ssh-agent -k
|
|
||||||
exit $?
|
exit $?
|
||||||
else
|
else
|
||||||
echo "SSH_AGENT_PID not set, /tmp/ssh-agent-id doesn't exist!" 1>&2
|
# The env isn't set, construct the file path.
|
||||||
|
STORE_PATH=/tmp
|
||||||
|
if [ ! -z "$1" ]; then
|
||||||
|
STORE_PATH="$STORE_PATH/$1"
|
||||||
|
fi
|
||||||
|
if [ ! -d "$STORE_PATH" ]; then
|
||||||
|
echo "Store Path $STORE_PATH doesn't exist!" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# And check our files exist.
|
||||||
|
if [ -f "$STORE_PATH/ssh-agent-id" ]; then
|
||||||
|
# Grab our PID and socket.
|
||||||
|
SSH_AGENT_PID=$(cat "$STORE_PATH/ssh-agent-id")
|
||||||
|
export SSH_AGENT_PID
|
||||||
|
|
||||||
|
SSH_AUTH_SOCK=$(cat "$STORE_PATH/ssh-auth-sock")
|
||||||
|
export SSH_AUTH_SOCK
|
||||||
|
|
||||||
|
eval $(ssh-agent -k) >/dev/null
|
||||||
|
exit $?
|
||||||
|
else
|
||||||
|
echo "SSH_AGENT_PID not set, $STORE_PATH/ssh-auth-sock doesn't exist!" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
Loading…
Reference in New Issue