do configs through env
This commit is contained in:
parent
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)
|
||||||
|
}
|
Loading…
Reference in New Issue