#! /usr/bin/env bash set -Eeuo pipefail set -x # Generates client. # env: # SOURCE: ${{ inputs.source }} # DESTINATION: ${{ inputs.destionation }} # HOST: ${{ inputs.host }} # USER: ${{ inputs.user }} # SSHKEY: ${{ inputs.sshkey }} rsync::ssh() { : "${SSHKEY?Please provide a SSH Private Key (ED25519).}" : "${GITHUB_WORKSPACE?GITHUB_WORKSPACE has to be set. Did you use the actions/checkout action?}" pushd "${GITHUB_WORKSPACE}" mkdir ~/.ssh chmod 700 ~/.ssh echo "${SSHKEY}" | tee ~/.ssh/id_ed25519 > /dev/null chmod 400 ~/.ssh/id_ed25519 # eval $(keychain --eval --quiet id_ed25519) } rsync::transfer() { : "${GITHUB_WORKSPACE?GITHUB_WORKSPACE has to be set. Did you use the actions/checkout action?}" : "${SOURCE?Define File to copy.}" : "${DESTINATION?Define File destination.}" : "${HOSTS?Destination Server}" : "${USER?Destination User}" pushd "${GITHUB_WORKSPACE}" rsync --progress "${SOURCE}" "${USER}@${HOSTS}:${DESTINATION}" } rsync::ssh