1aa3269274
Support AWS IAM Roles.
25 lines
929 B
Bash
Executable file
25 lines
929 B
Bash
Executable file
#!/bin/sh
|
|
|
|
# http://concourse.ci/implementing-resources.html#resource-check
|
|
|
|
set -e
|
|
|
|
# parse incoming config data
|
|
payload=`cat`
|
|
bucket=$(echo "$payload" | jq -r '.source.bucket')
|
|
prefix="$(echo "$payload" | jq -r '.source.path // ""')"
|
|
|
|
# export for `aws` cli
|
|
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
|
|
|
|
# Consider the most recent LastModified timestamp as the most recent version.
|
|
timestamps=$(aws s3api list-objects --bucket $bucket --prefix "$prefix" --query 'Contents[].{LastModified: LastModified}')
|
|
recent="$(echo $timestamps | jq -r 'max_by(.LastModified)')"
|
|
echo "[$recent]"
|