use lib_provisioning * use utils.nu * use ../lib_provisioning/config/accessor.nu * # List all servers export def "main list" [ ...args # Args for list command --infra (-i): string # Infra directory --settings (-s): string # Settings path --outfile (-o): string # Output file --check (-c) # Only check mode --debug (-x) # Use Debug mode --xm # Debug with PROVISIONING_METADATA --xc # Debug for task and services locally --xr # Debug for remote servers --xld # Log level with DEBUG --metadata # Error with metadata --notitles # not titles --helpinfo (-h) # For more details use options "help" --out: string # Print Output format: json, yaml, text (default) ]: nothing -> nothing { if ($out | is-not-empty) { set-provisioning-out $out set-provisioning-no-terminal true } provisioning_init $helpinfo "servers list" $args if $debug { set-debug-enabled true } if $metadata { set-metadata-enabled true } # Load server settings let curr_settings = (find_get_settings --infra $infra --settings $settings) # Get servers info let servers_table = (mw_servers_info $curr_settings) # Check if any servers exist if ($servers_table | length) == 0 { if (get-provisioning-out | is-empty) { _print "No servers configured" } else { _print ([] | to json) "json" "result" "table" } } else { # Display servers if ($out | is-empty) { # Terminal output with formatting _print ($servers_table | table -i false) } else { # Structured output (JSON, YAML) match (get-provisioning-out) { "json" => { _print ($servers_table | to json) "json" "result" "table" } "yaml" => { _print ($servers_table | to yaml) "yaml" "result" "table" } _ => { _print ($servers_table | table -i false) } } } } if not $notitles and not (is-debug-enabled) { end_run "" } }