39 lines
1.1 KiB
Bash
Executable file
39 lines
1.1 KiB
Bash
Executable file
#! /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 }}
|
|
echo "${SOURCE} or $SOURCE or ..."
|
|
|
|
rsync::ssh() {
|
|
: "${GITHUB_WORKSPACE?GITHUB_WORKSPACE has to be set. Did you use the actions/checkout action?}"
|
|
: "${SSHKEY?Please provide a SSH Private Key (ED25519).}"
|
|
: "${HOST?Destination Server}"
|
|
pushd "${GITHUB_WORKSPACE}"
|
|
printf "Add SSH Private Key"
|
|
mkdir ~/.ssh
|
|
chmod 700 ~/.ssh
|
|
echo "${SSHKEY}" | tee ~/.ssh/id_ed25519 > /dev/null
|
|
chmod 400 ~/.ssh/id_ed25519
|
|
ssh-keyscan -t ed25519 "${HOST}" | tee -a ~/.ssh/known_hosts
|
|
}
|
|
|
|
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.}"
|
|
: "${HOST?Destination Server}"
|
|
: "${USER?Destination User}"
|
|
pushd "${GITHUB_WORKSPACE}"
|
|
rsync --progress "${SOURCE}" "${USER}@${HOST}:${DESTINATION}"
|
|
}
|
|
|
|
rsync::ssh
|
|
rsync::transfer
|