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 } + } +}