mirror of
https://github.com/termux/termux-packages.git
synced 2025-10-09 14:20:49 +00:00
32 lines
971 B
Bash
32 lines
971 B
Bash
#!/bin/sh
|
|
# source-ssh-agent: Script to source for ssh-agent to work.
|
|
|
|
start_agent() {
|
|
ssh-agent -a "$1" > /dev/null
|
|
ssh-add
|
|
}
|
|
|
|
# Allow overriding the start_agent function easily.
|
|
if [ -r "${TERMUX__PREFIX:-"${PREFIX}"}"/etc/ssh/start_agent.sh ]; then
|
|
. "${TERMUX__PREFIX:-"${PREFIX}"}"/etc/ssh/start_agent.sh
|
|
fi
|
|
|
|
export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR:-"${TERMUX__PREFIX:-"${PREFIX}"}/var/run"}"/ssh-agent.socket
|
|
|
|
MESSAGE=$(ssh-add -L 2>&1)
|
|
if [ "$MESSAGE" = 'Could not open a connection to your authentication agent.' -o \
|
|
"$MESSAGE" = 'Error connecting to agent: Connection refused' -o \
|
|
"$MESSAGE" = 'Error connecting to agent: No such file or directory' ]; then
|
|
rm -f "${SSH_AUTH_SOCK}"
|
|
start_agent "${SSH_AUTH_SOCK}"
|
|
elif [ "$MESSAGE" = "The agent has no identities." ]; then
|
|
ssh-add
|
|
fi
|
|
|
|
# may be used by wrapper scripts:
|
|
# . /path/to/source-ssh-agent.sh
|
|
# "${wrapped_cmd}" "$@"
|
|
_arg_zero="${0##*/}"
|
|
wrapped_cmd="${_arg_zero%a}"
|
|
unset -v _arg_zero
|