62 lines
2.2 KiB
Plaintext
62 lines
2.2 KiB
Plaintext
|
|
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 "" }
|
||
|
|
}
|