@@ -20,6 +20,7 @@ import (
20
20
"golang.org/x/xerrors"
21
21
22
22
"github.com/charmbracelet/lipgloss"
23
+ "github.com/creack/pty"
23
24
"github.com/kirsle/configdir"
24
25
"github.com/mattn/go-isatty"
25
26
"github.com/spf13/cobra"
@@ -445,6 +446,7 @@ func isTTYWriter(cmd *cobra.Command, writer func() io.Writer) bool {
445
446
var templateFunctions = template.FuncMap {
446
447
"usageHeader" : usageHeader ,
447
448
"isWorkspaceCommand" : isWorkspaceCommand ,
449
+ "ttyWidth" : ttyWidth ,
448
450
}
449
451
450
452
func usageHeader (s string ) string {
@@ -466,6 +468,15 @@ func isWorkspaceCommand(cmd *cobra.Command) bool {
466
468
return ws
467
469
}
468
470
471
+ func ttyWidth () int {
472
+ _ , cols , err := pty .Getsize (os .Stderr )
473
+ if err != nil {
474
+ // Default width
475
+ return 100
476
+ }
477
+ return cols
478
+ }
479
+
469
480
func usageTemplate () string {
470
481
// usageHeader is defined in init().
471
482
return `{{usageHeader "Usage:"}}
@@ -508,12 +519,12 @@ func usageTemplate() string {
508
519
509
520
{{- if .HasAvailableLocalFlags}}
510
521
{{usageHeader "Flags:"}}
511
- {{.LocalFlags.FlagUsagesWrapped 100 | trimTrailingWhitespaces}}
522
+ {{.LocalFlags.FlagUsagesWrapped ttyWidth | trimTrailingWhitespaces}}
512
523
{{end}}
513
524
514
525
{{- if .HasAvailableInheritedFlags}}
515
526
{{usageHeader "Global Flags:"}}
516
- {{.InheritedFlags.FlagUsagesWrapped 100 | trimTrailingWhitespaces}}
527
+ {{.InheritedFlags.FlagUsagesWrapped ttyWidth | trimTrailingWhitespaces}}
517
528
{{end}}
518
529
519
530
{{- if .HasHelpSubCommands}}
0 commit comments