umami/entrypoint.sh
2024-07-27 16:59:46 +05:45

40 lines
No EOL
1.3 KiB
Bash

#!/bin/sh
# replace /__ENTRYPOINT__ with the runtime-configured entrypoint
if [ "$ALLOWED_FRAME_URLS" = "" ]; then
# root entrypoint is handled differently from non-root, in particular
# - basePath="" rather than "/"
# - an extra redirect is added /x/ => /x -- but with root that would be // => / which is invalid
cp .next/routes-manifest.json .next/routes-manifest.json.in
jq -rc '.basePath = ""
| .redirects = [
.redirects
| .[]
| select((.source == "/__ENTRYPOINT__/" and .destination == "/__ENTRYPOINT__") | not)
]' .next/routes-manifest.json.in > .next/routes-manifest.json
fi
escaped_frame_urls=$(echo "$ALLOWED_FRAME_URLS" | sed 's/\//\\\//g')
echo "Replacing /__ENTRYPOINT__ in all .next file..."
find .next -type f -exec sed -i 's/\/__ENTRYPOINT__/'"${escaped_frame_urls}"'/g' {} +
# Check if any replacements were made in .next files
if [ $? -eq 0 ]; then
echo "Replacements in .next completed."
else
echo "No replacements made in .next or an error occurred."
fi
# Replace /__ENTRYPOINT__ in server.js
echo "Replacing /__ENTRYPOINT__ in server.js..."
sed -i "s/\/__ENTRYPOINT__/${escaped_frame_urls}/g" server.js
# Check if any replacements were made in server.js
if [ $? -eq 0 ]; then
echo "Replacements in server.js completed."
else
echo "No replacements made in server.js or an error occurred."
fi
$@