generated from templates/go-generic
fix: improve formatting of the help menu
Use text/tabwriter to improve the formatting of the help menu.
This commit is contained in:
parent
23d6ddbdc8
commit
f7359402ef
1 changed files with 14 additions and 3 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue