ssh-scp-deploy/entrypoint.sh
2024-12-12 22:26:05 -06:00

31 lines
1.3 KiB
Bash
Executable file

#!/bin/sh -l
set -e
echo -e "${INPUT_KEY}" >__TEMP_INPUT_KEY_FILE
set -x
chmod 600 __TEMP_INPUT_KEY_FILE
COMMIT_SHA=$(cat ${INPUT_SRC}/.git-commit)
if [[ -z "$COMMIT_SHA" ]]; then
echo "COMMIT_SHA: Could not find file ${INPUT_SRC}/.git-commit"
exit 1
fi
echo "SSH Host: ${INPUT_USER}@${INPUT_HOST}:${INPUT_PORT}"
echo "Local Path: ${INPUT_SRC}"
echo "Remote Path: ${INPUT_REMOTE}"
echo "Commit: ${COMMIT_SHA}"
if [[ -z "$INPUT_EXTRACT"]]; then
# SCP normal files
scp -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \
-P "${INPUT_PORT}" $INPUT_OPTIONS -r ${INPUT_SRC} "${INPUT_USER}"@"${INPUT_HOST}":"${INPUT_REMOTE}/${COMMIT_SHA}"
elif
# Untar directly via SSh
ssh -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \
"${INPUT_USER}"@"${INPUT_HOST}" -p "${INPUT_PORT}" \
-C "mkdir ${INPUT_REMOTE}/${COMMIT_SHA} && cd ${INPUT_REMOTE}/${COMMIT_SHA} && tar -xvv" < $INPUT_SRC
fi
echo "File transfer complete. Symlinking and purging old entries"
ssh -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \
"${INPUT_USER}"@"${INPUT_HOST}" -p "${INPUT_PORT}" \
-C "ln -s ${INPUT_REMOTE}/${COMMIT_SHA} ${INPUT_REMOTE}/latest && find ${INPUT_REMOTE} -mindepth 1 -maxdepth 1 -type d -not -path './latest' | tail -n +5 | xargs --no-run-if-empty rm -r"