#!/usr/bin/env bash set -euo pipefail REPO_DIR="/home/jan/Documents/RFP/Infinity_Vis_Rust" APP_URL="http://127.0.0.1:9001/" STATE_URL="http://127.0.0.1:9001/api/v1/state" RUNTIME_STATE_PATH="data/runtime_state.json" open_browser() { xdg-open "$APP_URL" >/dev/null 2>&1 & } if curl -fsS "$STATE_URL" >/dev/null 2>&1; then echo "Infinity Vis laeuft bereits auf $APP_URL" open_browser exit 0 fi cd "$REPO_DIR" . "$HOME/.cargo/env" echo "Starte infinity_host_api auf $APP_URL" cargo run -p infinity_host_api -- \ --config config/project.example.toml \ --bind 127.0.0.1:9001 \ --runtime-state "$RUNTIME_STATE_PATH" & SERVER_PID=$! cleanup() { if kill -0 "$SERVER_PID" >/dev/null 2>&1; then kill "$SERVER_PID" >/dev/null 2>&1 || true wait "$SERVER_PID" >/dev/null 2>&1 || true fi } trap cleanup EXIT INT TERM for _attempt in $(seq 1 60); do if curl -fsS "$STATE_URL" >/dev/null 2>&1; then echo "Infinity Vis ist bereit." open_browser wait "$SERVER_PID" exit $? fi sleep 0.5 done echo "Der lokale API-Server wurde nicht rechtzeitig erreichbar." wait "$SERVER_PID"