#!/usr/bin/env bash PINK='\033[38;5;205m' AMBER='\033[38;5;214m' GREEN='\033[38;5;82m' NC='\033[0m' LB_DIR="$HOME/.blackroad/loadbalancer" REGISTRY_URL="http://localhost:8500" cmd="${1:-help}" shift 2>/dev/null case "$cmd" in start) echo -e "${PINK}Starting Service Registry...${NC}" nohup python3 "$LB_DIR/service_registry.py" > "$LB_DIR/logs/registry.log" 2>&1 & echo $! > "$LB_DIR/registry.pid" echo -e "${GREEN}Service Registry started (PID: $(cat "$LB_DIR/registry.pid"))${NC}" echo " API: $REGISTRY_URL" ;; stop) if [ -f "$LB_DIR/registry.pid" ]; then kill $(cat "$LB_DIR/registry.pid") 2>/dev/null rm "$LB_DIR/registry.pid" echo -e "${AMBER}Service Registry stopped${NC}" fi ;; status) if [ -f "$LB_DIR/registry.pid" ] && kill -0 $(cat "$LB_DIR/registry.pid") 2>/dev/null; then echo -e "${GREEN}●${NC} Service Registry running" curl -s "$REGISTRY_URL/services" | python3 -m json.tool else echo -e "${AMBER}○${NC} Service Registry not running" fi ;; list) curl -s "$REGISTRY_URL/services" | python3 -c " import sys, json data = json.load(sys.stdin) for name, count in data.items(): print(f' {name}: {count} instances') " ;; discover) service="$1" if [ -z "$service" ]; then echo "Usage: br-registry discover " exit 1 fi curl -s "$REGISTRY_URL/service/$service" | python3 -m json.tool ;; register) name="$1"; host="$2"; port="$3" if [ -z "$name" ] || [ -z "$host" ] || [ -z "$port" ]; then echo "Usage: br-registry register " exit 1 fi curl -s -X POST "$REGISTRY_URL/register" \ -H "Content-Type: application/json" \ -d "{\"name\":\"$name\",\"host\":\"$host\",\"port\":$port}" ;; help|*) echo -e "${PINK}br-registry - Service Registry Control${NC}" echo "" echo "Commands:" echo " start Start registry" echo " stop Stop registry" echo " status Show status" echo " list List all services" echo " discover Discover instances" echo " register Register service" ;; esac