Molecule 7/7: ansible_remote_tmp fix
Test & Deploy Hugo Docker CMS / test-and-deploy (push) Failing after 4m30s
Test & Deploy Hugo Docker CMS / test-and-deploy (push) Failing after 4m30s
This commit is contained in:
+52
-2
@@ -1,8 +1,12 @@
|
||||
#!/bin/sh
|
||||
# Auto-Frontmatter für Hugo 0.165+
|
||||
# Fügt fehlenden --- Titel-Block in .md-Dateien ein.
|
||||
# Installiert zusätzlich Pagefind und hält den Suchindex im Watch-Modus aktuell.
|
||||
|
||||
CONTENT_DIR="/src/content"
|
||||
PAGEFIND_DIR="/src/.pagefind"
|
||||
PAGEFIND_BIN="$PAGEFIND_DIR/pagefind"
|
||||
PAGEFIND_VERSION="v1.5.2"
|
||||
|
||||
for md in "$CONTENT_DIR"/*.md; do
|
||||
[ -f "$md" ] || continue
|
||||
@@ -29,10 +33,56 @@ for md in "$CONTENT_DIR"/*.md; do
|
||||
fi
|
||||
done
|
||||
|
||||
exec hugo server \
|
||||
# ── Pagefind installieren (einmalig, persistent via site-Mount) ──
|
||||
if [ ! -x "$PAGEFIND_BIN" ]; then
|
||||
echo "[pagefind] installiere ${PAGEFIND_VERSION} ..."
|
||||
mkdir -p "$PAGEFIND_DIR"
|
||||
wget -q -O /tmp/pagefind.tar.gz \
|
||||
"https://github.com/CloudCannon/pagefind/releases/download/${PAGEFIND_VERSION}/pagefind-${PAGEFIND_VERSION}-x86_64-unknown-linux-musl.tar.gz" \
|
||||
&& tar -xzf /tmp/pagefind.tar.gz -C "$PAGEFIND_DIR" \
|
||||
&& chmod +x "$PAGEFIND_BIN" \
|
||||
&& rm -f /tmp/pagefind.tar.gz \
|
||||
&& echo "[pagefind] installiert: $("$PAGEFIND_BIN" --version 2>&1 | head -1)"
|
||||
fi
|
||||
|
||||
# ── Pagefind-Index (neu) bauen ──
|
||||
build_pagefind() {
|
||||
if [ -x "$PAGEFIND_BIN" ] && [ -d /src/public ]; then
|
||||
"$PAGEFIND_BIN" --site /src/public --output-subdir pagefind >/dev/null 2>&1 \
|
||||
&& echo "[pagefind] Index aktualisiert"
|
||||
fi
|
||||
}
|
||||
|
||||
# Hugo im Hintergrund starten (Watch-Modus)
|
||||
hugo server \
|
||||
--watch \
|
||||
--bind=0.0.0.0 \
|
||||
--port=1313 \
|
||||
--disableFastRender \
|
||||
--baseURL=https://localhost:5443/ \
|
||||
--renderStaticToDisk
|
||||
--renderStaticToDisk &
|
||||
|
||||
HUGO_PID=$!
|
||||
|
||||
# Warten bis der erste Build fertig ist, dann initial indizieren
|
||||
i=0
|
||||
while [ $i -lt 60 ]; do
|
||||
[ -f /src/public/index.html ] && break
|
||||
sleep 1
|
||||
i=$((i + 1))
|
||||
done
|
||||
build_pagefind
|
||||
|
||||
# ── Watch-Loop: Pagefind neu bauen, wenn sich HTML in public ändert ──
|
||||
PAGEFIND_MARKER=/tmp/pagefind.marker
|
||||
touch "$PAGEFIND_MARKER"
|
||||
while true; do
|
||||
sleep 2
|
||||
if find /src/public -name '*.html' -newer "$PAGEFIND_MARKER" 2>/dev/null | grep -q .; then
|
||||
touch "$PAGEFIND_MARKER"
|
||||
build_pagefind
|
||||
fi
|
||||
done &
|
||||
|
||||
# Hugo im Vordergrund halten; bei dessen Ende den Container beenden
|
||||
wait "$HUGO_PID"
|
||||
|
||||
Reference in New Issue
Block a user