mirror of
https://github.com/Burnett01/rsync-deployments.git
synced 2025-12-07 00:22:20 +01:00
* feat: latest Alpine 3.23.0 * feat: latest Rsync 3.4.1-r1 * feat: integrate [rsync-docker](https://github.com/JoshPiper/rsync-docker/) 3rd party into this action as 1st party code (no more dependency, better audit, single source of truth) - backported: - agent-start - agent-stop - agent-askpass - agent-add - hosts-add - hosts-clear - new added: - ssh-init - hosts-init - improved: - stricter permissions on .ssh/ folder (700) and known_hosts (600) - use set -eu in all scipts * feat: new ``strict_host_keys`` option to enable support for strict host key verification. Default: false (to keep backward compatibility) * feat: new ``debug`` option to see the commands executed (-x) by this action * feat: this action is now scanned for vulnerabilities by Snyk * feat; this action is now scanned by CodeQL for Q/A * feat: this action now performs CI tasks such as Validation, Linting and Unit Tests * fix: various shell syntax for robustness * fix: use printf and redirect output to non-stdout instead of echo in sensitive code locations * refactor: use $HOME instead of tilde ~ for robustness * feat: cross-platform support * chore: Deprecate 7.0.2 * chore: EOL 7.0.0 & 7.0.1
37 lines
793 B
Bash
Executable file
37 lines
793 B
Bash
Executable file
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
if [ ! -z "$SSH_AGENT_PID" ]; then
|
|
# Here, the environment is set already, just kill the script.
|
|
eval $(ssh-agent -k) >/dev/null
|
|
exit $?
|
|
else
|
|
# The env isn't set, construct the file path.
|
|
FOLDER=${1:-default}
|
|
STORE_PATH="/tmp/ssh-agent/$FOLDER"
|
|
if [ ! -d "$STORE_PATH" ]; then
|
|
echo "Store Path $STORE_PATH doesn't exist!" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# And check our files exist.
|
|
if [ -f "$STORE_PATH/id" ]; then
|
|
# Grab our PID and socket.
|
|
SSH_AGENT_PID=$(cat "$STORE_PATH/id")
|
|
export SSH_AGENT_PID
|
|
rm "$STORE_PATH/id"
|
|
|
|
SSH_AUTH_SOCK=$(cat "$STORE_PATH/sock")
|
|
export SSH_AUTH_SOCK
|
|
rm "$STORE_PATH/sock"
|
|
|
|
|
|
rmdir "$STORE_PATH"
|
|
eval $(ssh-agent -k) >/dev/null
|
|
exit $?
|
|
else
|
|
echo "SSH_AGENT_PID not set, $STORE_PATH/id doesn't exist!" >&2
|
|
exit 1
|
|
fi
|
|
fi
|