do configs through env
Esse commit está contido em:
pai
54489f603a
commit
a8e03e721e
|
@ -0,0 +1,29 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
type Configs struct {
|
||||
Verbose bool
|
||||
Dbhost string
|
||||
Dbname string
|
||||
Dbport int
|
||||
Port int
|
||||
}
|
||||
|
||||
func NewConfig() *Configs {
|
||||
return &Configs{
|
||||
Verbose: true,
|
||||
Dbname: "itslog",
|
||||
Dbport: 5432,
|
||||
Port: 80,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Configs) validate() error {
|
||||
if c.Dbhost == "" {
|
||||
return errors.New("must specify dbhost (export ITSLOG_DBHOST=blah.local)")
|
||||
}
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/kelseyhightower/envconfig"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
||||
config := NewConfig()
|
||||
err := envconfig.Process("ITSLOG", config)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := config.validate(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
log.Printf("%+v", config)
|
||||
}
|
Carregando…
Referência em uma nova issue