69 lines
2.4 KiB
Text
69 lines
2.4 KiB
Text
# 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
|
|
}
|
|
}
|
|
}
|