diff options
| author | Alex Flint <[email protected]> | 2022-09-27 12:48:05 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-27 12:48:05 -0700 |
| commit | 74af96c6ccf404613c251bca4814d32c69047c5f (patch) | |
| tree | ab25f483d8ecd88e24e2e2d9f0c8726243816f3f /parse.go | |
| parent | ebd7a68a06bef58b87c1fd21c2e7db383adbcbf3 (diff) | |
| parent | c8b9567d1ba7f0ab20f93b60e5a8344c2c23c110 (diff) | |
Merge pull request #191 from SebastiaanPasterkamp/add-epilog-to-help
Feat: Add epilogue after help text
Diffstat (limited to 'parse.go')
| -rw-r--r-- | parse.go | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -134,6 +134,7 @@ type Parser struct { config Config version string description string + epilogue string // the following field changes during processing of command line arguments lastCmd *command @@ -155,6 +156,14 @@ type Described interface { Description() string } +// Epilogued is the interface that the destination struct should implement to +// add an epilogue string at the bottom of the help message. +type Epilogued interface { + // Epilogue returns the string that will be printed on a line by itself + // at the end of the help message. + Epilogue() string +} + // walkFields calls a function for each field of a struct, recursively expanding struct fields. func walkFields(t reflect.Type, visit func(field reflect.StructField, owner reflect.Type) bool) { walkFieldsImpl(t, visit, nil) @@ -236,6 +245,9 @@ func NewParser(config Config, dests ...interface{}) (*Parser, error) { if dest, ok := dest.(Described); ok { p.description = dest.Description() } + if dest, ok := dest.(Epilogued); ok { + p.epilogue = dest.Epilogue() + } } return &p, nil |
