diff --git a/cmd/instance_config.go b/cmd/instance_config.go index 6cb4836..f911a5b 100644 --- a/cmd/instance_config.go +++ b/cmd/instance_config.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "sort" "strconv" "strings" @@ -9,6 +10,20 @@ import ( "github.com/spf13/cobra" ) +// formatValue formats a configuration value, avoiding scientific notation for numbers +func formatValue(value interface{}) string { + switch v := value.(type) { + case float64: + // If it's a whole number, display as integer + if v == float64(int64(v)) { + return fmt.Sprintf("%.0f", v) + } + return fmt.Sprintf("%v", v) + default: + return fmt.Sprintf("%v", v) + } +} + var instanceConfigCmd = &cobra.Command{ Use: "config", Short: "Manage RabbitMQ configuration", @@ -55,8 +70,16 @@ var instanceConfigListCmd = &cobra.Command{ fmt.Printf("%-40s %-30s\n", "---", "-----") // Print configuration data - for key, value := range config { - valueStr := fmt.Sprintf("%v", value) + // Extract and sort keys alphabetically + keys := make([]string, 0, len(config)) + for key := range config { + keys = append(keys, key) + } + sort.Strings(keys) + + // Print sorted configuration + for _, key := range keys { + valueStr := formatValue(config[key]) if len(valueStr) > 30 { valueStr = valueStr[:27] + "..." } @@ -96,7 +119,8 @@ var instanceConfigGetCmd = &cobra.Command{ } if value, exists := config[settingName]; exists { - fmt.Printf("%s: %v\n", settingName, value) + valueStr := formatValue(value) + fmt.Printf("%s: %s\n", settingName, valueStr) } else { fmt.Printf("Setting '%s' not found\n", settingName) }