#!/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"