package main import ( "fmt" "log" "net/http" "os" "strconv" "github.com/joho/godotenv" "paterissa.net/mblog/cmd/web/handlers" "paterissa.net/mblog/internal/context" ) type application struct { err *log.Logger info *log.Logger env context.Environment } func main() { var app application app.err = log.New(os.Stderr, "ERROR\t", log.Ldate | log.Ltime) app.info = log.New(os.Stdout, "INFO\t", log.Ldate | log.Ltime) err := godotenv.Load() if err != nil { app.err.Fatal("Failed to load env") } app.env.Webmaster = os.Getenv("webmaster") app.env.Db.Username = os.Getenv("db_user") app.env.Db.Password = os.Getenv("db_pass") app.env.AppPort, err = strconv.ParseUint(os.Getenv("app_port"), 10, 64) if err != nil { app.env.AppPort = 5005 } router := handlers.RegisterEndpoints(app.env.Webmaster) srv := &http.Server{ Addr: fmt.Sprintf(":%d", app.env.AppPort), ErrorLog: app.err, Handler: router, } err = srv.ListenAndServe() app.err.Fatal(err) }