From 3e4d359140331cd35d73f13d70ea77be612d77fd Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Mon, 12 Jun 2023 12:17:19 +0000 Subject: [PATCH] chore(settings): default root url to `/` (cannot be empty) --- cmd/updater/main.go | 2 +- internal/config/settings/server.go | 6 +++--- internal/config/sources/env/server.go | 2 +- internal/server/handler.go | 2 ++ 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/updater/main.go b/cmd/updater/main.go index 5783e5c5..2e4c04cf 100644 --- a/cmd/updater/main.go +++ b/cmd/updater/main.go @@ -262,7 +262,7 @@ func _main(ctx context.Context, settingsSource SettingsSource, args []string, lo address := ":" + fmt.Sprint(*config.Server.Port) serverLogger := logger.New(log.SetComponent("http server")) - server := server.New(ctx, address, *config.Server.RootURL, db, serverLogger, runner) + server := server.New(ctx, address, config.Server.RootURL, db, serverLogger, runner) serverHandler, serverCtx, serverDone := goshutdown.NewGoRoutineHandler("server") go server.Run(serverCtx, serverDone) notify("Launched with " + strconv.Itoa(len(records)) + " records to watch") diff --git a/internal/config/settings/server.go b/internal/config/settings/server.go index 5ff86c4f..ec81556c 100644 --- a/internal/config/settings/server.go +++ b/internal/config/settings/server.go @@ -10,18 +10,18 @@ import ( type Server struct { Port *uint16 - RootURL *string + RootURL string } func (s *Server) setDefaults() { const defaultPort = 8000 s.Port = gosettings.DefaultPointer(s.Port, defaultPort) - s.RootURL = gosettings.DefaultPointer(s.RootURL, "") + s.RootURL = gosettings.DefaultString(s.RootURL, "/") } func (s Server) mergeWith(other Server) (merged Server) { merged.Port = gosettings.MergeWithPointer(s.Port, other.Port) - merged.RootURL = gosettings.MergeWithPointer(s.RootURL, other.RootURL) + merged.RootURL = gosettings.MergeWithString(s.RootURL, other.RootURL) return merged } diff --git a/internal/config/sources/env/server.go b/internal/config/sources/env/server.go index dade09c6..99f166fc 100644 --- a/internal/config/sources/env/server.go +++ b/internal/config/sources/env/server.go @@ -3,7 +3,7 @@ package env import "github.com/qdm12/ddns-updater/internal/config/settings" func (s *Source) readServer() (settings settings.Server, err error) { - settings.RootURL = s.env.Get("ROOT_URL") + settings.RootURL = s.env.String("ROOT_URL") settings.Port, err = s.env.Uint16Ptr("LISTENING_PORT") // TODO change to address return settings, err } diff --git a/internal/server/handler.go b/internal/server/handler.go index 2d75194d..7ead44df 100644 --- a/internal/server/handler.go +++ b/internal/server/handler.go @@ -4,6 +4,7 @@ import ( "context" "embed" "net/http" + "strings" "text/template" "time" @@ -40,6 +41,7 @@ func newHandler(ctx context.Context, rootURL string, router := chi.NewRouter() router.Use(middleware.Logger) + rootURL = strings.TrimSuffix(rootURL, "/") router.Get(rootURL+"/", handlers.index)