fix: improve formatting of the help menu

Use text/tabwriter to improve the formatting of the help menu.
This commit is contained in:
Dan Anglin 2024-09-23 22:26:15 +01:00
parent 23d6ddbdc8
commit f7359402ef
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638

View file

@ -3,7 +3,10 @@ package commands
import ( import (
"fmt" "fmt"
"maps" "maps"
"os"
"slices" "slices"
"strings"
"text/tabwriter"
) )
func HelpFunc(summaries map[string]string) CommandFunc { func HelpFunc(summaries map[string]string) CommandFunc {
@ -16,13 +19,21 @@ func HelpFunc(summaries map[string]string) CommandFunc {
slices.Sort(keys) slices.Sort(keys)
fmt.Printf("\nCommands:\n") var builder strings.Builder
builder.WriteString("\nCommands:\n")
tableWriter := tabwriter.NewWriter(&builder, 0, 8, 0, '\t', 0)
for _, key := range slices.All(keys) { for _, key := range slices.All(keys) {
fmt.Printf("\n%s: %s", key, summaries[key]) fmt.Fprintf(tableWriter, "\n%s\t%s", key, summaries[key])
} }
fmt.Printf("\n\n") tableWriter.Flush()
builder.WriteString("\n\n")
fmt.Fprint(os.Stdout, builder.String())
return nil return nil
} }