You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/bash
set -e
exec 3>&1 # make stdout available as fd 3 for the result exec 1>&2 # redirect all output to stderr for logging
echo "BUILD_ID: $BUILD_ID" echo "BUILD_NAME: $BUILD_NAME" echo "BUILD_JOB_NAME: $BUILD_JOB_NAME" echo "BUILD_PIPELINE_NAME: $BUILD_PIPELINE_NAME"
source $(dirname $0)/common.sh
source=$1
if [ -z "$source" ]; then echo "usage: $0 <path/to/source>" exit 1 fi
# for jq PATH=/usr/local/bin:$PATH
payload=$(mktemp $TMPDIR/rclone-resource-request.XXXXXX) cat > $payload <&0
# TODO: Remove Me - DEBUGGING echo "Payload:" cat $payload
load_config $payload load_files $payload
rclone_source_directory=$(jq -r '.params.source // ""' < $payload) rclone_destinations=$(jq -r '.params.destination[]? | .dir // ""' < $payload)
if [ -z "$rclone_source_directory" ]; then echo "invalid source directory (missing source)" exit 1 fi
if [ -z "$rclone_destinations" ]; then echo "invalid destination (missing destination)" exit 1 fi
echo "Source directory: $rclone_source_directory" echo "Destinations:" jq -c '.params.destination[] | .dir' < $payload
local_source_dir="${source}/${rclone_source_directory}" ls -alh ${local_source_dir}
sha256=$((find ${local_source_dir} -type f -exec sha256sum {} \;) | cut -d ' ' -f1)
echo "sha256:${sha256}"
# Source is always the same for each destination rclone_source="local:${local_source_dir}" echo "Source: ${rclone_source}"
destinations=$(jq -r '.params.destination[] | @base64' < $payload) echo "Using encoded destinations:" echo " ${destinations}"
for destination in $destinations; do _jq() { echo ${destination} | base64 -d | jq -r ${1} }
rclone_destination=$(_jq '.dir') echo "Destination: $rclone_destination"
rclone_destination_subdir_file=$(_jq '.subdir // ""') echo "Destination subdir file: ${rclone_destination_subdir_file}" rclone_destination_subdir="" if [ ! -z "$rclone_destination_subdir_file" ]; then echo "Looking in ${source}/${rclone_destination_subdir_file} for subdir to use" rclone_destination_subdir=$(cat "${source}/${rclone_destination_subdir_file}" | head -n 1) fi
rclone_target="${rclone_destination}/${rclone_destination_subdir}" echo "Target: ${rclone_target}" rclone copy "${rclone_source}" "${rclone_target}" --config /opt/rclone/config/.rclone.conf --progress done
jq -n "{ version: { digest: $((echo -n "sha256:"; echo "$sha256") | jq -R .) } }" >&3
|