Delegate usage to the UI

This commit is contained in:
Seth Vargo 2017-08-30 12:48:39 -04:00
parent 30dc835b2c
commit eb4ab6840d
No known key found for this signature in database
GPG Key ID: C921994F9C27E0FF

View File

@ -313,17 +313,10 @@ type FlagSets struct {
// NewFlagSets creates a new flag sets.
func NewFlagSets(ui cli.Ui) *FlagSets {
mainSet := flag.NewFlagSet("", flag.ContinueOnError)
mainSet.Usage = func() {}
// Pull errors from the flagset into the ui's error
errR, errW := io.Pipe()
errScanner := bufio.NewScanner(errR)
go func() {
for errScanner.Scan() {
ui.Error(errScanner.Text())
}
}()
mainSet.SetOutput(errW)
// Errors and usage are controlled by the CLI.
mainSet.Usage = func() {}
mainSet.SetOutput(ioutil.Discard)
return &FlagSets{
flagSets: make([]*FlagSet, 0, 6),