#!/bin/sh # Records Kepr 2's §22.4 compatibility routes from kepr.uk, GET only, into this folder: # .headers (status line plus the headers the contract tests read) and .body. # Downloads are recorded without their body (`--max-filesize 1` stops before the file). # Re-run before cutover (§28) and review the diff. set -eu out=$(cd "$(dirname "$0")" && pwd) raw=$(mktemp) rec() { # path [nobody] slug=$(printf '%s' "$1" | sed 's#^/##; s#/#_#g') if [ "${2:-}" = nobody ]; then curl -s -D "$raw" -o /dev/null --max-filesize 1 "https://kepr.uk$1" || true else curl -s -D "$raw" -o "$out/$slug.body" "https://kepr.uk$1" fi { head -1 "$raw" | tr -d '\r'; grep -i -E '^(content-type|access-control-allow-origin|location|cache-control|content-disposition):' "$raw" | tr -d '\r' || true; } > "$out/$slug.headers" echo "$1 -> $(head -1 "$out/$slug.headers")" } for r in haven kepr koh nina peach-android; do rec /api/$r/releases/latest rec /api/$r/releases/history rec /$r/update-info rec /$r/meta rec /$r/releases/latest rec /$r/releases/latest/version.txt v=$(cat "$out/${r}_releases_latest_version.txt.body") rec /$r/releases/$v/checksums.txt p=$(sed 's/.*"platforms":{"\([^"]*\)".*/\1/' "$out/api_${r}_releases_latest.body") rec /$r/releases/$v/$p nobody rec /$r/releases/$v/$r-$p nobody done rec /api/koh/releases/latest for p in linux-x86_64 macos-aarch64; do rec /api/koh/releases/2.1.0/$p nobody; done rec /api/koh/releases/2.1.16/linux-x86_64 rec /api/peach-relay/releases/latest rec /api/peach-relay/releases/history rec /peach-relay/meta rec /peach-relay/update-info rec /api/nowhere/releases/latest