#!/usr/bin/env bash set -euo pipefail RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' info() { echo -e "${GREEN}[+]${NC} $*"; } die() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; } header() { echo -e "\n${CYAN}══════════════════════════════════════════${NC}"; echo -e "${CYAN} $*${NC}"; echo -e "${CYAN}══════════════════════════════════════════${NC}"; } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" header "TinyBoard Setup" echo "" echo " 1) Set up this device as a new spoke" echo " 2) Onboard a new spoke from the hub" echo "" read -rp "Choose [1/2]: " CHOICE case "$CHOICE" in 1) [ "$(id -u)" -eq 0 ] || die "Spoke setup must be run as root" info "Starting spoke setup..." exec "$SCRIPT_DIR/spoke/setup-spoke.sh" ;; 2) info "Starting hub onboarding..." exec "$SCRIPT_DIR/hub/onboard-spoke.sh" ;; *) die "Invalid choice" ;; esac