Skip to content

Commit 46f5e09

Browse files
baijumclaude
andcommitted
fix: append S3 env vars if missing instead of silent sed no-op
The deploy script used sed substitution for S3_ACCESS_KEY, S3_SECRET_KEY, and S3_BUCKET, which silently does nothing when the lines don't exist in deploy/.env. This happens when the .env was created before S3 vars were added to the template. Now uses grep-or-append pattern to ensure vars are always present. Also adds S3_ENDPOINT which was never injected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0d517f8 commit 46f5e09

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

infrastructure/deploy-blue-green.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,22 @@ if [ -f "$CREDENTIALS_FILE" ]; then
109109
# shellcheck source=/dev/null
110110
source "$CREDENTIALS_FILE"
111111
sed -i "s|^DATABASE_URL=.*|DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${APP_DB}|" deploy/.env
112-
sed -i "s|^S3_ACCESS_KEY=.*|S3_ACCESS_KEY=${S3_ACCESS_KEY}|" deploy/.env
113-
sed -i "s|^S3_SECRET_KEY=.*|S3_SECRET_KEY=${S3_SECRET_KEY}|" deploy/.env
114-
sed -i "s|^S3_BUCKET=.*|S3_BUCKET=${APP_NAME}-uploads|" deploy/.env
112+
113+
# Ensure S3 vars exist (append if missing, substitute if present)
114+
if [ -n "${S3_ACCESS_KEY:-}" ]; then
115+
grep -q "^S3_ENDPOINT=" deploy/.env \
116+
&& sed -i "s|^S3_ENDPOINT=.*|S3_ENDPOINT=http://minio:9000|" deploy/.env \
117+
|| echo "S3_ENDPOINT=http://minio:9000" >> deploy/.env
118+
grep -q "^S3_ACCESS_KEY=" deploy/.env \
119+
&& sed -i "s|^S3_ACCESS_KEY=.*|S3_ACCESS_KEY=${S3_ACCESS_KEY}|" deploy/.env \
120+
|| echo "S3_ACCESS_KEY=${S3_ACCESS_KEY}" >> deploy/.env
121+
grep -q "^S3_SECRET_KEY=" deploy/.env \
122+
&& sed -i "s|^S3_SECRET_KEY=.*|S3_SECRET_KEY=${S3_SECRET_KEY}|" deploy/.env \
123+
|| echo "S3_SECRET_KEY=${S3_SECRET_KEY}" >> deploy/.env
124+
grep -q "^S3_BUCKET=" deploy/.env \
125+
&& sed -i "s|^S3_BUCKET=.*|S3_BUCKET=${APP_NAME}-uploads|" deploy/.env \
126+
|| echo "S3_BUCKET=${APP_NAME}-uploads" >> deploy/.env
127+
fi
115128
info "deploy/.env updated with per-app credentials"
116129
else
117130
warn "Per-app credentials not found at $CREDENTIALS_FILE"

0 commit comments

Comments
 (0)