diff --git a/config.go b/config.go new file mode 100644 index 0000000..d165bd2 --- /dev/null +++ b/config.go @@ -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 +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..014acff --- /dev/null +++ b/main.go @@ -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) +}