#!/usr/bin/env bash set -Eeuo pipefail IFS=$'\n\t' NAME="Brain" ROOT="/Volumes/${NAME}/HiveExpansion" LOGFILE="${ROOT}/hive_startup.log" log() { printf '%s\n' "$*"; } log_err() { printf 'ERR: %s\n' "$*" >&2; } if [[ ! -d "$ROOT" ]]; then log_err "HiveExpansion not found at $ROOT" exit 1 fi if pgrep -f "hive_master_controller" >/dev/null 2>&1; then log "hive_master_controller already running" exit 0 fi cd "$ROOT" # Check for C++ executable first, then .NET, then Go if [[ -f "hive_master_controller" ]]; then nohup ./hive_master_controller >> "$LOGFILE" 2>&1 & log "Started hive_master_controller (C++, log: $LOGFILE)" elif [[ -f "hive_master_controller.dll" ]]; then nohup dotnet hive_master_controller.dll >> "$LOGFILE" 2>&1 & log "Started hive_master_controller (.NET, log: $LOGFILE)" elif [[ -f "hive_master_controller.go" ]]; then go build -o hive_master_controller hive_master_controller.go nohup ./hive_master_controller >> "$LOGFILE" 2>&1 & log "Started hive_master_controller (Go, log: $LOGFILE)" else log_err "hive_master_controller executable not found" exit 1 fi