From a2bb7037577e37ec192f53a67cef37c33de287d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Fri, 17 Apr 2026 22:32:24 +0100 Subject: [PATCH] perf(server): dedicated ssh thin handler + fix st alias conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit provisioning-server-ssh.nu: loads only servers/ssh.nu (~190ms parse). Routes both `prvng ssh ` and `prvng server ssh `. 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 --- cli/provisioning | 7 +++- nulib/provisioning-server-ssh.nu | 67 ++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 nulib/provisioning-server-ssh.nu diff --git a/cli/provisioning b/cli/provisioning index 6c050b6..464ba64 100755 --- a/cli/provisioning +++ b/cli/provisioning @@ -1097,7 +1097,7 @@ else orchestrator | orch | o) $NU "${NU_ARGS[@]}" "$PROVISIONING/core/nulib/provisioning-orchestrator.nu" $CMD_ARGS → provisioning server ssh --run shift - $NU "${NU_ARGS[@]}" "$PROVISIONING/core/nulib/provisioning-server.nu" server ssh "$@" --run + $NU "${NU_ARGS[@]}" "$PROVISIONING/core/nulib/provisioning-server-ssh.nu" server ssh "$@" --run ;; state | st) $NU "${NU_ARGS[@]}" "$PROVISIONING/core/nulib/provisioning-state.nu" $CMD_ARGS 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 ` and `prvng server ssh ` 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 } + } +}