diff --git a/cmd/program.go b/cmd/program.go index 1d8b85be43379dda4024a563423bc793b8e0453e_Y21kL3Byb2dyYW0uZ28=..dafdd8181250992287324bb47411329e29f2a10e_Y21kL3Byb2dyYW0uZ28= 100644 --- a/cmd/program.go +++ b/cmd/program.go @@ -36,8 +36,10 @@ } type subcommand[E any] struct { - name string - init func(*Program[E]) any + name string + shortDescription string + longDescription string + init func(*Program[E]) any } type Program[E any] struct { @@ -186,7 +188,10 @@ } } -func WithSubcommand[E any](name string, init func(*Program[E]) any) Option[E] { +func WithSubcommand[E any]( + name string, shortDescription string, longDescription string, + init func(*Program[E]) any, +) Option[E] { return func(program *Program[E]) { program.setupSubcommands = append(program.setupSubcommands, subcommand[E]{ name: name, @@ -279,7 +284,10 @@ } for _, subcmd := range program.setupSubcommands { - if _, err := parser.AddCommand(subcmd.name, subcmd.name, "", subcmd.init(&program)); err != nil { + if _, err := parser.AddCommand( + subcmd.name, subcmd.shortDescription, subcmd.shortDescription, + subcmd.init(&program), + ); err != nil { panic(err) } }