vegapokerbot/internal/app/parser_wrapper.go

32 lines
612 B
Go
Raw Normal View History

2024-05-07 21:49:09 +03:00
package app
import (
"github.com/jessevdk/go-flags"
"os"
)
type ParserWrapper struct {
parser *flags.Parser
}
func NewParserWrapper() *ParserWrapper {
return &ParserWrapper{parser: flags.NewParser(nil, flags.Default)}
}
func (w *ParserWrapper) AddCommand(name, description string, cmd flags.Commander) {
_, err := w.parser.AddCommand(name, description, "", cmd)
if err != nil {
panic(err)
}
}
func (w *ParserWrapper) Run() {
if _, err := w.parser.Parse(); err != nil {
if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp {
os.Exit(0)
} else {
os.Exit(1)
}
}
}