|
|
|
@ -2,7 +2,12 @@ package main |
|
|
|
|
|
|
|
import ( |
|
|
|
"flag" |
|
|
|
"git.brettb.xyz/goinv/server/internal/config" |
|
|
|
"github.com/knadh/koanf/parsers/json" |
|
|
|
"github.com/knadh/koanf/providers/env" |
|
|
|
"github.com/knadh/koanf/providers/file" |
|
|
|
"log" |
|
|
|
"strings" |
|
|
|
|
|
|
|
"git.brettb.xyz/goinv/server/internal/api" |
|
|
|
"git.brettb.xyz/goinv/server/internal/storage" |
|
|
|
@ -13,9 +18,22 @@ func main() { |
|
|
|
seed := flag.Bool("seed", false, "seed the database") |
|
|
|
flag.Parse() |
|
|
|
|
|
|
|
datastore, err := storage.NewDataStorePG("127.0.0.1", "postgres", "password", "em_test", "disable") // TODO: CONFIGURATION
|
|
|
|
config.LoadConfig(file.Provider("config.json"), json.Parser()) |
|
|
|
config.LoadConfig(env.Provider("GOINV_SRV_", ".", func(s string) string { |
|
|
|
return strings.Replace(strings.ToLower( |
|
|
|
strings.TrimPrefix(s, "GOINV_SRV_")), "_", ".", -1, |
|
|
|
) |
|
|
|
}), nil) |
|
|
|
|
|
|
|
var cfg config.Config |
|
|
|
err := config.Unmarshal(&cfg) |
|
|
|
if err != nil { |
|
|
|
log.Fatalf("could not load config: %v", err) |
|
|
|
} |
|
|
|
|
|
|
|
datastore, err := storage.NewDataStorePG(cfg.DB.Host, cfg.DB.Username, cfg.DB.Password, cfg.DB.Database, cfg.DB.SSLMode) |
|
|
|
if err != nil { |
|
|
|
panic(err) |
|
|
|
log.Fatalf("could not connect to database: %v", err) |
|
|
|
} |
|
|
|
|
|
|
|
if *seed { |
|
|
|
|