scripts/s3-cache-download.bash
Rama develop · réplica de lectura del repositorio original.
#!/bin/bash
set -e
# S3 Cache Download Script
# Downloads terraform/terragrunt provider cache from S3
BUCKET="$1"
PREFIX="$2"
REGION="$3"
CACHE_DIR="$4"
# Validation
if [ -z "$BUCKET" ]; then
echo "Error: S3 bucket name is required"
exit 1
fi
if [ -z "$REGION" ]; then
echo "Error: AWS region is required"
exit 1
fi
if [ -z "$CACHE_DIR" ]; then
echo "Error: Cache directory path is required"
exit 1
fi
# Ensure cache directory exists
mkdir -p "$CACHE_DIR"
echo "Ensuring cache directory exists: $CACHE_DIR"
# Download cache from S3
echo "Restoring cache from S3 bucket: $BUCKET (prefix: $PREFIX, region: $REGION)"
if aws s3 sync "s3://$BUCKET/$PREFIX" "$CACHE_DIR" --region "$REGION" --only-show-errors; then
CACHED_FILES=$(find "$CACHE_DIR" -type f 2>/dev/null | wc -l)
echo "Cache restored successfully ($CACHED_FILES files)"
if [ "$CACHED_FILES" -gt 0 ]; then
echo "Sample cached artifacts:"
find "$CACHE_DIR" -type f 2>/dev/null | head -3
fi
# This step is necessary for filesystems where noexec is enabled
echo "Setting permissions for cached artifacts (provider files)"
if find "$CACHE_DIR" -type f -name 'terraform-provider-*' \
-exec chmod +x {} \; ; then
echo "✅ All provider binaries marked executable."
else
echo "❌ Failed to set exec bit on one or more providers." >&2
fi
else
echo "No existing cache found or failed to restore (this is normal for first run)"
fi
echo "Cache download completed"