35 lines
1,003 B
Bash
Executable file
35 lines
1,003 B
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 }}
|
|
|
|
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
|