#!/bin/sh set -eu PROJECT_UC="$1" PASS='✅' FAIL='❌' mkdir -p public/ci-logs public/ci-data OUT="$(mktemp)" chmod 644 "$OUT" git fetch origin refs/notes/*:refs/notes/* ||: for c in $(git notes list | cut -d\ -f2); do DATA="$(git notes --ref=refs/notes/ci-data show "$c")" FILENAME="$(echo "$DATA" | cut -d\ -f2)" echo "$DATA" > "public/ci-data/$FILENAME" git notes --ref=refs/notes/ci-logs show "$c" > "public/ci-logs/$FILENAME" done cat <<EOF >> "$OUT" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> pre { display: inline; } </style> </head> <body> <h1> CI logs for $PROJECT_UC </h1> <ul> EOF for f in $(find public/ci-data/ -type f | LANG=C.UTF-8 sort -r); do DATA="$(cat "$f")" STATUS="$(echo "$DATA" | cut -d\ -f1)" FILENAME="$(echo "$DATA" | cut -d\ -f2)" if [ "$STATUS" = 0 ]; then STATUS_MARKER="$PASS" else STATUS_MARKER="$FAIL" fi cat <<EOF >> "$OUT" <li> <a href="ci-logs/$FILENAME"> $STATUS_MARKER <pre>$FILENAME</pre> </a> </li> EOF done cat <<EOF >> "$OUT" </ul> </body> </html> EOF mv "$OUT" public/ci.html