31 lines
1.3 KiB
Bash
Executable file
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"
|