#!/usr/bin/env nu
# Show build runners, K8s pods, and health for this deployment.
# Usage: nu provisioning/status.nu

def main []: nothing -> nothing {
    print "── Build runners ────────────────────────────"
    let runners = (do { ^hcloud server list --output json } | complete)
    if $runners.exit_code == 0 {
        $runners.stdout | from json
            | where { |s| ($s.name | str starts-with "runner-") or ($s.name | str starts-with "buildkit-runner-") }
            | each { |s| { name: $s.name, status: $s.status, type: $s.server_type.name } }
            | table
    } else {
        print "(hcloud unavailable)"
    }

    print "\n── K8s pods (example-pro) ────────────────"
    let pods = (do { ^kubectl get pods -n example-pro --no-headers } | complete)
    if $pods.exit_code == 0 {
        $pods.stdout | lines | where { |l| $l | is-not-empty } | each { |l| { pod: $l } } | table
    } else {
        print "(kubectl unavailable or namespace not found)"
    }

    print "\n── Health ───────────────────────────────────"
    let health = (do { ^curl -sf "https://example.com/health" } | complete)
    if $health.exit_code == 0 {
        print "HEALTHY: /health responded"
    } else {
        print "UNHEALTHY or unreachable"
    }
}
