|
|
@@ -17,6 +17,19 @@ is_alpine() {
|
|
|
[ -f /etc/alpine-release ]
|
|
|
}
|
|
|
|
|
|
+html_escape() {
|
|
|
+ printf '%s' "$1" | sed \
|
|
|
+ -e 's/&/\&/g' \
|
|
|
+ -e 's/</\</g' \
|
|
|
+ -e 's/>/\>/g' \
|
|
|
+ -e 's/"/\"/g' \
|
|
|
+ -e "s/'/\'/g"
|
|
|
+}
|
|
|
+
|
|
|
+sed_escape() {
|
|
|
+ printf '%s\n' "$1" | sed 's/[&/\\]/\\&/g; s/\$/\\$/g'
|
|
|
+}
|
|
|
+
|
|
|
# Cleanup
|
|
|
rm -rf /var/www/html/*
|
|
|
|
|
|
@@ -84,6 +97,17 @@ if [[ "$MODE" == "frontend" || "$MODE" == "dual" || "$MODE" == "standalone" ]];
|
|
|
sed -i "s/var SPEEDTEST_SERVERS = \"server-list.json\";/var SPEEDTEST_SERVERS = \"$SERVER_LIST_URL_ESCAPED\";/" /var/www/html/index-modern.html
|
|
|
sed -i "s/var SPEEDTEST_SERVERS = \\[/var SPEEDTEST_SERVERS = \"$SERVER_LIST_URL_ESCAPED\";\\n\\t\\t\\/\\*/" /var/www/html/index-classic.html
|
|
|
fi
|
|
|
+
|
|
|
+ # Replace title placeholders if TITLE is set
|
|
|
+ if [ ! -z "$TITLE" ]; then
|
|
|
+ TITLE_ONE_LINE=${TITLE//$'\r'/}
|
|
|
+ TITLE_ONE_LINE=${TITLE_ONE_LINE//$'\n'/ }
|
|
|
+ TITLE_HTML_ESCAPED=$(html_escape "$TITLE_ONE_LINE")
|
|
|
+ TITLE_ESCAPED=$(sed_escape "$TITLE_HTML_ESCAPED")
|
|
|
+ sed -i "s/<title>LibreSpeed<\\/title>/<title>$TITLE_ESCAPED<\\/title>/g; s/<h1>LibreSpeed<\\/h1>/<h1>$TITLE_ESCAPED<\\/h1>/g" /var/www/html/index-classic.html
|
|
|
+ sed -i "s/<title>LibreSpeed<\\/title>/<title>$TITLE_ESCAPED<\\/title>/g" /var/www/html/index.html
|
|
|
+ sed -i "s/<title>LibreSpeed - Free and Open Source Speedtest<\\/title>/<title>$TITLE_ESCAPED - Free and Open Source Speedtest<\\/title>/g" /var/www/html/index-modern.html
|
|
|
+ fi
|
|
|
|
|
|
# Support legacy EMAIL env var as fallback for GDPR_EMAIL
|
|
|
if [ -z "$GDPR_EMAIL" ] && [ ! -z "$EMAIL" ]; then
|