138 lines
3.7 KiB
Text
138 lines
3.7 KiB
Text
|
|
# Platform Services CLI Commands
|
||
|
|
# User-facing commands for managing platform services
|
||
|
|
|
||
|
|
# Selective imports (ADR-025 Phase 3 Layer 2).
|
||
|
|
use platform/health.nu [check-all-services check-required-services]
|
||
|
|
use platform/discovery.nu [list-services]
|
||
|
|
use platform/autostart.nu [start-required-services]
|
||
|
|
use platform/connection.nu [init-connection-metadata show-connection-status]
|
||
|
|
|
||
|
|
# Show platform status
|
||
|
|
export def platform-status [] {
|
||
|
|
print ""
|
||
|
|
print "Platform Services Status"
|
||
|
|
print "========================"
|
||
|
|
print ""
|
||
|
|
|
||
|
|
let statuses = (check-all-services)
|
||
|
|
|
||
|
|
if ($statuses | is-empty) {
|
||
|
|
print "No platform services configured"
|
||
|
|
} else {
|
||
|
|
for item in $statuses {
|
||
|
|
let icon = (if $item.status == "healthy" { "✓" } else { "✗" })
|
||
|
|
print $" ($icon) ($item.name): ($item.status)"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
print ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# Show platform configuration
|
||
|
|
# load-platform-target is not defined anywhere in the codebase; this function
|
||
|
|
# was dead at runtime. Falls back to a clear "not configured" message.
|
||
|
|
export def platform-config [] {
|
||
|
|
print ""
|
||
|
|
print "Platform Configuration"
|
||
|
|
print "====================="
|
||
|
|
print ""
|
||
|
|
print "Platform target not available — no load-platform-target implementation."
|
||
|
|
print "Use 'prvng platform list' to see configured services from discovery."
|
||
|
|
print ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# List platform services
|
||
|
|
export def platform-list [] {
|
||
|
|
print ""
|
||
|
|
print "Platform Services"
|
||
|
|
print "================="
|
||
|
|
print ""
|
||
|
|
|
||
|
|
let services = (list-services)
|
||
|
|
|
||
|
|
if ($services | is-empty) {
|
||
|
|
print "No services available"
|
||
|
|
} else {
|
||
|
|
print "Enabled Services:"
|
||
|
|
for svc in $services {
|
||
|
|
print $" • ($svc)"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
print ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# Show platform health
|
||
|
|
export def platform-health [] {
|
||
|
|
print ""
|
||
|
|
print "Platform Health Check"
|
||
|
|
print "===================="
|
||
|
|
print ""
|
||
|
|
|
||
|
|
let required = (check-required-services)
|
||
|
|
let all = (check-all-services)
|
||
|
|
|
||
|
|
print "Required Services:"
|
||
|
|
for item in $required {
|
||
|
|
let icon = (if $item.status == "healthy" { "✓" } else { "✗" })
|
||
|
|
print $" ($icon) ($item.name): ($item.status)"
|
||
|
|
}
|
||
|
|
|
||
|
|
print ""
|
||
|
|
print "Optional Services:"
|
||
|
|
|
||
|
|
# Filter optional services (those not in required list)
|
||
|
|
mut optional = []
|
||
|
|
for item in $all {
|
||
|
|
let is_req = (
|
||
|
|
$required
|
||
|
|
| any {|r| $r.name == $item.name }
|
||
|
|
)
|
||
|
|
if not $is_req {
|
||
|
|
$optional = ($optional | append $item)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($optional | is-empty) {
|
||
|
|
print " (none)"
|
||
|
|
} else {
|
||
|
|
for item in $optional {
|
||
|
|
let icon = (if $item.status == "healthy" { "✓" } else { "✗" })
|
||
|
|
print $" ($icon) ($item.name): ($item.status)"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
print ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# Start platform services
|
||
|
|
export def platform-start [] {
|
||
|
|
print ""
|
||
|
|
print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
print "Starting Platform Services"
|
||
|
|
print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
print ""
|
||
|
|
|
||
|
|
start-required-services
|
||
|
|
|
||
|
|
print ""
|
||
|
|
print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
print "Platform Health Status"
|
||
|
|
print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
print ""
|
||
|
|
|
||
|
|
platform-health
|
||
|
|
}
|
||
|
|
|
||
|
|
# Show platform connection status
|
||
|
|
export def platform-connections [] {
|
||
|
|
show-connection-status
|
||
|
|
}
|
||
|
|
|
||
|
|
# Initialize platform for workspace
|
||
|
|
export def platform-init [] {
|
||
|
|
print "Initializing platform for workspace..."
|
||
|
|
init-connection-metadata
|
||
|
|
print "✓ Platform initialized"
|
||
|
|
}
|