prvng_core/nulib/provisioning-server-ssh.nu
Jesús Pérez a2bb703757
perf(server): dedicated ssh thin handler + fix st alias conflict
provisioning-server-ssh.nu: loads only servers/ssh.nu (~190ms parse).
  Routes both `prvng ssh <host>` and `prvng server ssh <host>`.
  ssh: 931ms → 315ms (-66%).

  bash wrapper: st removed from guide case (setup/state alias conflict
  resolved in favor of state — state | st) wins as pre-existing binding).
  server|s) now routes ssh sub-command to provisioning-server-ssh.nu
2026-04-17 22:32:24 +01:00

67 lines
3.5 KiB
Text

#!/usr/bin/env nu
# Thin entry for `server ssh` and the `ssh` shortcut.
# Loads only servers/ssh.nu (~190ms vs ~1s for the full server handler).
export-env {
let lib_dirs_raw = ($env.NU_LIB_DIRS? | default "")
let current_lib_dirs = if ($lib_dirs_raw | type) == "string" {
if ($lib_dirs_raw | is-empty) { [] } else { ($lib_dirs_raw | split row ":") }
} else { $lib_dirs_raw }
let dynamic = ($env.PROVISIONING? | default "" | path join "core" "nulib")
$env.NU_LIB_DIRS = ([
"/opt/provisioning/core/nulib"
"/usr/local/provisioning/core/nulib"
] | append $current_lib_dirs | append (if ($dynamic | is-not-empty) { [$dynamic] } else { [] }))
let args_raw = ($env.PROVISIONING_ARGS? | default "")
$env.PROVISIONING_ARGS = ($args_raw | str replace --regex '^(server|s)\s+' '')
let _coerce = {|raw| $raw == "true" or $raw == "1" }
let raw_debug = ($env.PROVISIONING_DEBUG? | default "")
if ($raw_debug | describe) == "string" and ($raw_debug | is-not-empty) {
$env.PROVISIONING_DEBUG = (do $_coerce $raw_debug)
}
}
use servers/ssh.nu *
def main [
...args: string
--infra (-i): string = ""
--settings (-s): string = ""
--run (-r)
--debug (-x)
]: nothing -> nothing {
if $debug { $env.PROVISIONING_DEBUG = true }
# Strip leading "server"/"s" token if present
let first = ($args | get 0? | default "")
let rest = if $first in ["server" "s"] { $args | skip 1 } else { $args }
let subcmd = ($rest | get 0? | default "ssh")
let name = ($rest | get 1? | default ($rest | get 0? | default ""))
# Both `prvng ssh <host>` and `prvng server ssh <host>` land here
let host = if $subcmd == "ssh" { $name } else { $subcmd }
let has_infra = ($infra | is-not-empty)
let has_settings = ($settings | is-not-empty)
let has_host = ($host | is-not-empty)
match [$has_host, $has_infra, $has_settings, $run, $debug] {
[true, true, true, true, true ] => { main ssh $host --infra $infra --settings $settings --debug --run }
[true, true, true, true, false] => { main ssh $host --infra $infra --settings $settings --run }
[true, true, true, false, true ] => { main ssh $host --infra $infra --settings $settings --debug }
[true, true, true, false, false] => { main ssh $host --infra $infra --settings $settings }
[true, true, false, true, true ] => { main ssh $host --infra $infra --debug --run }
[true, true, false, true, false] => { main ssh $host --infra $infra --run }
[true, true, false, false, true ] => { main ssh $host --infra $infra --debug }
[true, true, false, false, false] => { main ssh $host --infra $infra }
[true, false, true, true, true ] => { main ssh $host --settings $settings --debug --run }
[true, false, true, true, false] => { main ssh $host --settings $settings --run }
[true, false, true, false, true ] => { main ssh $host --settings $settings --debug }
[true, false, true, false, false] => { main ssh $host --settings $settings }
[true, false, false, true, true ] => { main ssh $host --debug --run }
[true, false, false, true, false] => { main ssh $host --run }
[true, false, false, false, true ] => { main ssh $host --debug }
[true, false, false, false, false] => { main ssh $host }
[false, true, false, true, false] => { main ssh --infra $infra --run }
[false, true, false, false, false] => { main ssh --infra $infra }
_ => { main ssh }
}
}