#!/bin/sh # Generator for .devcontainer/Dockerfile # Combines the root /Dockerfile (with some COPY lines removed) and # the dev-only stage in .devcontainer/resources/devcontainer-Dockerfile. # Run this script after modifying the resource Dockerfile to refresh # the final .devcontainer/Dockerfile used by the devcontainer. echo "Generating .devcontainer/Dockerfile" SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)" DEVCONTAINER_DIR="${SCRIPT_DIR%/scripts}" ROOT_DIR="${DEVCONTAINER_DIR%/.devcontainer}" OUT_FILE="${DEVCONTAINER_DIR}/Dockerfile" echo "Adding base Dockerfile from $ROOT_DIR..." echo "# DO NOT MODIFY THIS FILE DIRECTLY. IT IS AUTO-GENERATED BY .devcontainer/scripts/generate-configs.sh" > "$OUT_FILE" echo "" >> "$OUT_FILE" echo "# ---/Dockerfile---" >> "$OUT_FILE" cat "${ROOT_DIR}/Dockerfile" >> "$OUT_FILE" echo "" >> "$OUT_FILE" echo "# ---/resources/devcontainer-Dockerfile---" >> "$OUT_FILE" echo "" >> "$OUT_FILE" echo "Adding devcontainer-Dockerfile from $DEVCONTAINER_DIR/resources..." cat "${DEVCONTAINER_DIR}/resources/devcontainer-Dockerfile" >> "$OUT_FILE" echo "Generated $OUT_FILE using root dir $ROOT_DIR" >&2 # Generate devcontainer nginx config from production template echo "Generating devcontainer nginx config" NGINX_TEMPLATE="${ROOT_DIR}/install/production-filesystem/services/config/nginx/netalertx.conf.template" NGINX_OUT="${DEVCONTAINER_DIR}/resources/devcontainer-overlay/services/config/nginx/netalertx.conf.template" # Create output directory if it doesn't exist mkdir -p "$(dirname "$NGINX_OUT")" # Start with header comment cat > "$NGINX_OUT" << 'EOF' # DO NOT MODIFY THIS FILE DIRECTLY. IT IS AUTO-GENERATED BY .devcontainer/scripts/generate-configs.sh # Generated from: install/production-filesystem/services/config/nginx/netalertx.conf.template EOF # Process the template: replace listen directive and inject Xdebug params sed 's/${LISTEN_ADDR}:${PORT}/0.0.0.0:20211/g' "$NGINX_TEMPLATE" | \ awk ' /fastcgi_param SCRIPT_NAME \$fastcgi_script_name;/ { print $0 print "" print " fastcgi_param PHP_VALUE \"xdebug.remote_enable=1\";" next } { print } ' >> "$NGINX_OUT" echo "Generated $NGINX_OUT from $NGINX_TEMPLATE" >&2 echo "Done."