koding / multiconfig

Load configuration from multiple sources in Go
http://godoc.org/github.com/koding/multiconfig
MIT License
454 stars 64 forks source link

Distinct behaviors of `-flag false` and `-flag=false` #70

Open flowrean opened 6 years ago

flowrean commented 6 years ago

For boolean flag values, there is what seems to me inconsistent behavior.

Reusing the example from the README:

package main

import (
    "fmt"
    "github.com/koding/multiconfig"
)

type Server struct {
    Enabled bool
}

func main() {
    m := multiconfig.New()
    serverConf := new(Server)
    m.MustLoad(serverConf)

    fmt.Println(serverConf.Enabled)
}

Here are a few runs of the app:

$ app         
false
$ app -enabled
true
$ app -enabled=true
true
$ app -enabled=false
false
$ app -enabled true
true
$ app -enabled false
true

I would expect the last one to be false.