#!/usr/bin/env bash set -euo pipefail repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$repo_dir" rebuild_computer=0 for arg in "$@"; do case "$arg" in --rebuild-computer) rebuild_computer=1 ;; *) echo "Unknown argument: $arg" >&2 exit 2 ;; esac done for command_name in docker pnpm; do if ! command -v "$command_name" >/dev/null 2>&1; then echo "Missing required command: $command_name" >&2 exit 1 fi done bash "$repo_dir/scripts/ensure-local-env.sh" if [[ ! -f .env ]]; then echo "Missing .env after local env setup." >&2 exit 1 fi if ! docker info >/dev/null 2>&1; then echo "Docker is not running. Start Docker Desktop and try again." >&2 exit 1 fi pnpm install --frozen-lockfile docker compose --env-file .env -f infra/compose/docker-compose.yml up postgres -d --wait pnpm db:generate pnpm db:migrate if [[ "$rebuild_computer" -eq 1 ]] || ! docker image inspect rakazo/computer:local >/dev/null 2>&1; then pnpm sandbox:build fi echo "Starting BangSo Bot at http://127.0.0.1:5173" exec pnpm dev