#!/usr/bin/env bash set -e cd "$(dirname "$0")/.." if [ "$1" == "--install" ]; then npm exec --package=@stdy/cli@0.22.1 -- steady --version exit 0 fi if [[ -n "$1" && "$1" != '--'* ]]; then URL="$1" shift elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then URL="$STAINLESS_OPENAPI_SPEC_URL" else # Embedded OpenAPI spec (base64-encoded, gzipped) EMBEDDED_SPEC="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" SPEC_TMPFILE="$(mktemp)" trap 'rm -f "$SPEC_TMPFILE"' EXIT echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" URL="$SPEC_TMPFILE" fi echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec MOCK_PORT="${STAINLESS_MOCK_PORT:-4010}" if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout npm exec --package=@stdy/cli@0.22.1 -- steady --version npm exec --package=@stdy/cli@0.22.1 -- steady --host 127.0.0.1 -p "$MOCK_PORT" --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" attempts=0 while ! curl --silent --fail "http://127.0.0.1:$MOCK_PORT/_x-steady/health" >/dev/null 2>&1; do if ! kill -0 $! 2>/dev/null; then echo cat .stdy.log exit 1 fi attempts=$((attempts + 1)) if [ "$attempts" -ge 300 ]; then echo echo "Timed out waiting for Steady server to start" cat .stdy.log exit 1 fi echo -n "." sleep 0.1 done echo else npm exec --package=@stdy/cli@0.22.1 -- steady --host 127.0.0.1 -p "$MOCK_PORT" --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL" fi