2016-03-10 18:18:11 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
2016-03-18 20:19:48 +01:00
|
|
|
# Resource Impl: http://concourse.ci/implementing-resources.html#in:-fetch-a-given-resource
|
2016-03-10 18:18:11 +01:00
|
|
|
set -e
|
|
|
|
|
|
|
|
exec 3>&1 # make stdout available as fd 3 for the result
|
|
|
|
exec 1>&2 # redirect all output to stderr for logging
|
|
|
|
|
|
|
|
dest=$1
|
|
|
|
|
|
|
|
if [ -z "$dest" ]; then
|
|
|
|
echo "usage: $0 <path/to/volume>"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
#######################################
|
|
|
|
|
|
|
|
# parse incoming config data
|
|
|
|
payload=`cat`
|
|
|
|
bucket=$(echo "$payload" | jq -r '.source.bucket')
|
2016-10-04 16:33:07 +02:00
|
|
|
path=$(echo "$payload" | jq -r '.source.path // ""')
|
2016-03-18 21:13:29 +01:00
|
|
|
options=$(echo "$payload" | jq -r '.source.options // [] | join(" ")')
|
2016-03-10 18:18:11 +01:00
|
|
|
|
2017-02-21 22:09:45 +01:00
|
|
|
skip_download=$(echo "$payload" | jq -r '.params.skip_download // ""')
|
|
|
|
|
2016-03-18 20:19:48 +01:00
|
|
|
# export for `aws` cli
|
2016-08-18 11:31:03 +02:00
|
|
|
AWS_ACCESS_KEY_ID=$(echo "$payload" | jq -r '.source.access_key_id')
|
|
|
|
AWS_SECRET_ACCESS_KEY=$(echo "$payload" | jq -r '.source.secret_access_key')
|
|
|
|
|
|
|
|
# Due to precedence rules, must be unset to support AWS IAM Roles.
|
|
|
|
if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ]; then
|
|
|
|
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
|
|
|
|
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
|
|
|
|
fi
|
2016-03-10 18:18:11 +01:00
|
|
|
|
2017-02-21 22:09:45 +01:00
|
|
|
if [ "$skip_download" = "true" ]; then
|
|
|
|
echo "Skipping downloading from S3..."
|
|
|
|
else
|
|
|
|
echo "Downloading from S3..."
|
|
|
|
eval aws s3 sync "s3://$bucket/$path" $dest $options
|
|
|
|
echo "...done."
|
|
|
|
fi
|
2016-03-10 18:18:11 +01:00
|
|
|
|
2016-03-10 18:35:56 +01:00
|
|
|
source "$(dirname $0)/emit.sh" >&3
|