provisioning-core/nulib/cli/handlers/utilities/mod.nu

78 lines
2.6 KiB
Text

# Utilities Command Dispatcher
# Routes utility commands to appropriate domain-specific handlers
# NUSHELL 0.109 COMPLIANT - All handlers properly exported
use ./ssh.nu *
use ./sops.nu *
use ./cache.nu *
use ./providers.nu *
use ./plugins.nu *
use ./shell.nu *
use ./guides.nu *
use ./qr.nu *
use ./alias.nu *
# Main utility command dispatcher - Routes to appropriate domain handler
export def handle_utility_command [
command: string
ops: string
flags: record
] {
match $command {
# Alias table (default: list)
"alias" => {
let action = ($ops | split row " " | first | default "list")
match $action {
"list" | "l" | "ls" | "" => { alias-list }
_ => { alias-list }
}
}
# SSH operations
"ssh" => { handle_ssh $flags }
# SOPS file editing (sed is alias)
"sed" | "sops" => { handle_sops_edit $command $ops $flags }
# Cache management
"cache" => { handle_cache $ops $flags }
# Provider management
"providers" => { handle_providers $ops $flags }
# Plugin management
"plugin" | "plugins" => { handle_plugins $ops $flags }
# Shell operations (nu, nuinfo, list)
"nu" => { handle_nu $ops $flags }
"nuinfo" => { handle_nuinfo }
"list" | "l" | "ls" => { handle_list $ops $flags }
# Guide system
"guide" | "guides" | "howto" => { handle_guide $ops $flags }
# QR code generation
"qr" => { handle_qr }
# Unknown command
_ => {
print $"❌ Unknown utility command: ($command)"
print ""
print "Available utility commands:"
print " ssh - SSH into server"
print " sed - Edit SOPS encrypted files (alias)"
print " sops - Edit SOPS encrypted files"
print " cache - Cache management (status, config, clear, list)"
print " providers - List available providers"
print " nu - Start Nushell with provisioning library loaded"
print " list - List resources (servers, taskservs, clusters)"
print " qr - Generate QR code"
print " nuinfo - Show Nushell version info"
print " plugin - Plugin management (list, register, test, status)"
print " guide - Show interactive guides (from-scratch, update, customize)"
print ""
print "Use 'provisioning help utilities' for more details"
exit 1
}
}
}