#!/usr/bin/env bash set -euo pipefail env_file="${1:-.env.devprod}" if [[ ! -f "${env_file}" ]]; then echo "Missing env file: ${env_file}" exit 1 fi set_kv() { local key="$1" local value="$2" local esc esc="${value//\\/\\\\}" esc="${esc//&/\\&}" esc="${esc//|/\\|}" if grep -q "^${key}=" "${env_file}"; then sed -i -E "s|^${key}=.*|${key}=${esc}|" "${env_file}" else echo "${key}=${value}" >> "${env_file}" fi } read_kv() { local key="$1" local line line="$(grep -m1 -E "^${key}=" "${env_file}" || true)" if [[ -z "${line}" ]]; then return 1 fi echo "${line#*=}" } existing_token="$(read_kv "BROKER_INTERNAL_API_TOKEN" || true)" if [[ -n "${existing_token}" ]]; then echo "Using existing broker internal API token from ${env_file}" else generated_token="" if command -v openssl >/dev/null 2>&1; then generated_token="$(openssl rand -hex 32)" fi if [[ -z "${generated_token}" ]]; then generated_token="$(tr -dc 'a-zA-Z0-9'