From 54309fcde24e6ff49f414519ffb53b9321be4c59 Mon Sep 17 00:00:00 2001 From: Samuel Johnson Date: Mon, 28 Apr 2025 23:26:49 -0400 Subject: Create app context struct --- cmd/web/main.go | 41 +++++++++++++++++++++++++++++------------ internal/context/environment.go | 13 +++++++++++++ internal/environment.go | 13 ------------- 3 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 internal/context/environment.go delete mode 100644 internal/environment.go diff --git a/cmd/web/main.go b/cmd/web/main.go index 31137cf..cda5300 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -10,25 +10,42 @@ import ( "github.com/joho/godotenv" "paterissa.net/mblog/cmd/web/handlers" - "paterissa.net/mblog/internal" + "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 { - log.Fatal("Failed to load env") + app.err.Fatal("Failed to load env") } - - var Env internal.Environment - - Env.Webmaster = os.Getenv("webmaster") - Env.Db.Username = os.Getenv("db_user") - Env.Db.Password = os.Getenv("db_pass") - Env.AppPort, err = strconv.ParseUint(os.Getenv("app_port"), 10, 64) + + 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 { - Env.AppPort = 5005 + 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, } - router := handlers.RegisterEndpoints(Env.Webmaster) - log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", Env.AppPort), router)) + err = srv.ListenAndServe() + app.err.Fatal(err) } diff --git a/internal/context/environment.go b/internal/context/environment.go new file mode 100644 index 0000000..8329ac2 --- /dev/null +++ b/internal/context/environment.go @@ -0,0 +1,13 @@ +package context + +type DbCredentials struct { + Username string + Password string +} + +type Environment struct { + Webmaster string + AppPort uint64 + + Db DbCredentials +} diff --git a/internal/environment.go b/internal/environment.go deleted file mode 100644 index cbdd17c..0000000 --- a/internal/environment.go +++ /dev/null @@ -1,13 +0,0 @@ -package internal - -type DbCredentials struct { - Username string - Password string -} - -type Environment struct { - Webmaster string - AppPort uint64 - - Db DbCredentials -} -- cgit v1.2.3