From 56f2f6aa07d96a641347e43ddfcd646e55be5d3e Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 16 Nov 2025 21:28:35 -0600 Subject: [PATCH] chore: add generate-env.sh script --- Dockerfile | 1 + docker/generate-env.sh | 49 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100755 docker/generate-env.sh diff --git a/Dockerfile b/Dockerfile index b7a4c303d..76ef0afd8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,3 +57,4 @@ EXPOSE 80 COPY docker/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/build /usr/share/nginx/html/console +COPY docker/generate-env.sh /app/generate-env.sh diff --git a/docker/generate-env.sh b/docker/generate-env.sh new file mode 100755 index 000000000..b5de7e335 --- /dev/null +++ b/docker/generate-env.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# Regenerate env.js from runtime PUBLIC_ environment variables + +echo "Regenerating env.js from environment variables..." + +# Build JSON object from PUBLIC_ env vars +env_json="{" +first=true + +for var in $(printenv | grep '^PUBLIC_' | awk -F= '{print $1}' | sort); do + value=$(printenv "$var") + + # Escape special characters for JSON + escaped_value=$(echo "$value" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g') + + if [ "$first" = true ]; then + first=false + else + env_json="$env_json," + fi + + env_json="$env_json\"$var\":\"$escaped_value\"" + echo " $var=$value" +done + +env_json="$env_json}" + +# Write to env.js +# Determine correct path based on script location +if [ -d "./_app" ]; then + # Script is in build/ directory + env_file="./_app/env.js" +elif [ -d "./build/_app" ]; then + # Script is in root or docker/ directory + env_file="./build/_app/env.js" +else + echo "⚠ Error: Cannot find _app directory" + exit 1 +fi + +echo "export const env=$env_json" > "$env_file" + +echo "✓ Generated $env_file" + +# Remove compressed versions (they'll be regenerated by nginx if needed) +rm -f "${env_file}.br" "${env_file}.gz" + +exec "$@" \ No newline at end of file