Current section

Files

Jump to
mix_deploy priv templates sync-config-s3.eex
Raw

priv/templates/sync-config-s3.eex

#!/bin/sh
# Sync config files from S3 bucket to app config dir
set -e
# Env vars
# CONFIG_S3_BUCKET: bucket name
# CONFIG_S3_PREFIX: path prefix in bucket, optional, should end with a trailing slash
# DESTDIR, prefix for target files, optional
# Config vars
CONFIG_DIR="<%= configuration_dir %>"
DEPLOY_USER="${DEPLOY_USER:-<%= deploy_user %>}"
APP_GROUP="${APP_USER:-<%= app_group %>}"
# Make sure files are created with restrictive file permissions
umask 077
echo "Starting $0"
aws s3 sync --exact-timestamps --no-progress "s3://${CONFIG_S3_BUCKET}/${CONFIG_S3_PREFIX}" "${DESTDIR}${CONFIG_DIR}/"
chown -R $DEPLOY_USER:$APP_GROUP ${DESTDIR}$CONFIG_DIR
find ${DESTDIR}$CONFIG_DIR -type f -exec chmod 640 {} \;
find ${DESTDIR}$CONFIG_DIR -type d -exec chmod 750 {} \;