diff --git a/entrypoint.sh b/entrypoint.sh index b9c200f7..cfd58d00 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,20 +1,44 @@ #!/bin/bash set -e +if [ -n "$MAGICK_MAX_WIDTH" ]; then + if ! [[ "$MAGICK_MAX_WIDTH" =~ ^[0-9]+$ ]]; then + echo "Error: MAGICK_MAX_WIDTH must be a positive integer in pixels" >&2 + exit 1 + fi +fi + +if [ -n "$MAGICK_MAX_HEIGHT" ]; then + if ! [[ "$MAGICK_MAX_HEIGHT" =~ ^[0-9]+$ ]]; then + echo "Error: MAGICK_MAX_HEIGHT must be a positive integer in pixels" >&2 + exit 1 + fi +fi + if [ -n "$MAGICK_MAX_WIDTH" ] || [ -n "$MAGICK_MAX_HEIGHT" ]; then POLICY_DIR="/etc/ImageMagick-7" POLICY_FILE="$POLICY_DIR/policy.xml" - mkdir -p "$POLICY_DIR" - - echo "" > "$POLICY_FILE" - if [ -n "$MAGICK_MAX_WIDTH" ]; then - echo " " >> "$POLICY_FILE" + if [ -f "$POLICY_FILE" ] && grep -q "" "$POLICY_FILE"; then + [ -n "$MAGICK_MAX_WIDTH" ] && sed -i '/| \n|" "$POLICY_FILE" + fi + if [ -n "$MAGICK_MAX_HEIGHT" ]; then + sed -i "s|| \n|" "$POLICY_FILE" + fi + else + mkdir -p "$POLICY_DIR" + echo "" > "$POLICY_FILE" + if [ -n "$MAGICK_MAX_WIDTH" ]; then + echo " " >> "$POLICY_FILE" + fi + if [ -n "$MAGICK_MAX_HEIGHT" ]; then + echo " " >> "$POLICY_FILE" + fi + echo "" >> "$POLICY_FILE" fi - if [ -n "$MAGICK_MAX_HEIGHT" ]; then - echo " " >> "$POLICY_FILE" - fi - echo "" >> "$POLICY_FILE" fi exec bun run dist/src/index.js