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