gotextlog

gotextlog
git clone https://git.ryansepassi.com/git/gotextlog.git
Log | Files | Refs | README

e2e-key-server (955B)


      1 #!/bin/sh
      2 set -eu
      3 
      4 repo=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)
      5 server_repo=$(CDPATH= cd -- "$repo/../gotextlog-srv" && pwd)
      6 tmp=$(mktemp -d)
      7 pid=
      8 cleanup() {
      9     if [ -n "$pid" ]; then
     10         kill "$pid" 2>/dev/null || true
     11         wait "$pid" 2>/dev/null || true
     12     fi
     13     rm -rf "$tmp"
     14 }
     15 trap cleanup EXIT INT TERM
     16 
     17 port=18937
     18 url="http://127.0.0.1:$port"
     19 (
     20     cd "$server_repo"
     21     CGO_ENABLED=1 go build -mod=vendor -o "$tmp/gotextlog-srv" ./cmd/gotextlog-srv
     22 )
     23 "$tmp/gotextlog-srv" -listen "127.0.0.1:$port" -public-origin "$url" -database "$tmp/textlog.db" >"$tmp/server.log" 2>&1 &
     24 pid=$!
     25 
     26 attempt=0
     27 while ! curl -fsS "$url/api/v1/feeds/latest?limit=1" >/dev/null 2>&1; do
     28     attempt=$((attempt + 1))
     29     if [ "$attempt" -ge 100 ]; then
     30         cat "$tmp/server.log" >&2
     31         exit 1
     32     fi
     33     sleep 0.05
     34 done
     35 
     36 cd "$repo"
     37 GOTEXTLOG_TEST_SERVER_URL="$url" go test -race ./internal/tui -run TestServerEndToEndWithTwoTUIBackends -count=1