provisioning-core/nulib/cli/handlers/utilities_core.nu

70 lines
2.4 KiB
Text
Raw Normal View History

# Module: Utilities Command Dispatcher
# Purpose: Routes utility commands (SSH, SOPS, cache, providers, plugins, guides) to appropriate handlers.
# Dependencies: utilities_handlers
# Utility Command Core - Main dispatcher
# Handles routing to: ssh, sed, sops, cache, providers, nu, list, qr
use cli/flags.nu *
# REMOVED: use ../../lib_provisioning * - causes circular import
use orchestration/servers/ssh.nu *
use orchestration/servers/utils.nu *
# Import all handler functions
use ./utilities_handlers.nu *
# Helper to run module commands
def run_module [
args: string
module: string
option?: string
--exec
] {
let use_debug = if ($env.PROVISIONING_DEBUG? | default false) { "-x" } else { "" }
if $exec {
exec $"($env.PROVISIONING_NAME)" $use_debug -mod $module ($option | default "") $args
} else {
^$"($env.PROVISIONING_NAME)" $use_debug -mod $module ($option | default "") $args
}
}
# Main utility command dispatcher
export def handle_utility_command [
command: string
ops: string
flags: record
] {
match $command {
"ssh" => { handle_ssh $flags }
"sed" | "sops" => { handle_sops_edit $command $ops $flags }
"cache" => { handle_cache $ops $flags }
"providers" => { handle_providers $ops $flags }
"nu" => { handle_nu $ops $flags }
"list" | "l" | "ls" => { handle_list $ops $flags }
"qr" => { handle_qr }
"nuinfo" => { handle_nuinfo }
"plugin" | "plugins" => { handle_plugins $ops $flags }
"guide" | "guides" | "howto" => { handle_guide $ops $flags }
_ => {
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
}
}
}