#!/usr/bin/env bash set -euo pipefail readonly GREEN='\033[0;32m' readonly YELLOW='\033[1;33m' readonly BLUE='\033[0;34m' readonly RED='\033[0;31m' readonly NC='\033[0m' ok() { echo -e "${GREEN}OK${NC} $*"; } warn() { echo -e "${YELLOW}WARN${NC} $*"; } fail() { echo -e "${RED}FAIL${NC} $*"; } step() { echo -e "${BLUE}$*${NC}"; } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" WSL_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" AUTOMATION_DIR="$(cd "$WSL_DIR/.." && pwd)" DOCKER_ENV_FILE="$WSL_DIR/.env" COMPOSE_FILE="$WSL_DIR/docker-compose.yml" PID_DIR="$AUTOMATION_DIR/wsl_runtime/pids" LOGS_DIR="$AUTOMATION_DIR/wsl_runtime/logs" compose_cmd() { docker compose --env-file "$DOCKER_ENV_FILE" -f "$COMPOSE_FILE" "$@" } step "Docker" if command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1; then ok "docker daemon running" else fail "docker daemon unavailable" fi echo step "Compose services" if command -v docker >/dev/null 2>&1 && [[ -f "$COMPOSE_FILE" ]]; then compose_cmd ps || true else warn "compose file or docker missing" fi echo step "Queue runner" if [[ -f "$PID_DIR/queue-runner.pid" ]] && kill -0 "$(cat "$PID_DIR/queue-runner.pid")" 2>/dev/null; then ok "queue runner PID $(cat "$PID_DIR/queue-runner.pid")" elif command -v systemctl >/dev/null 2>&1 && systemctl is-active abletonmcp-queue-runner.service >/dev/null 2>&1; then ok "queue runner managed by systemd" else warn "queue runner not running" fi echo step "Logs" if [[ -d "$LOGS_DIR" ]]; then ls -1 "$LOGS_DIR" | sed 's/^/ - /' else warn "no logs directory" fi