#!/bin/sh set -eu . "$(git rev-parse --show-toplevel)/packages/tools/src/sh/env.sh" NAME=$(jq -r '.name' package.json) # Tuning knobs come from the same gitignored root .env a deploy reads (RECFLARE_, see # .env.example), so a knob is configured in exactly one place whether you're running locally # or shipping. Unset knobs fall back to the worker's own default constants, same as a deploy. # # Passed as `--var` rather than left to wrangler's own .env loading: wrangler only reads a # .env sitting next to the worker's wrangler.jsonc, which would mean a second file per app. recflare_load_env EXTRA_VARS=$(recflare_vars) # Give each worker a stable, unique dev port so `turbo dev` can run them all in # parallel without colliding on wrangler's default 8787 (and its 9229 inspector # port). The offset is the worker's alphabetical position among its siblings, so # it stays deterministic and needs no per-worker configuration. OFFSET=$( for dir in ../*/; do [ -f "${dir}wrangler.jsonc" ] || continue jq -r '.name' "${dir}package.json" done | sort | grep -Fnx "$NAME" | cut -d: -f1 ) PORT=$((8787 + OFFSET - 1)) INSPECTOR_PORT=$((9229 + OFFSET - 1)) # $EXTRA_VARS is intentionally unquoted — it's a flag list to word-split on. exec wrangler dev \ --var NAME:"$NAME" \ $EXTRA_VARS \ --port "$PORT" \ --inspector-port "$INSPECTOR_PORT" \ "$@"