From 879cc25421c66a959ab801f0937b4264a461fc7e Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Thu, 27 Jun 2024 13:34:21 +0200 Subject: use pointer to config in builder & templates --- internal/atom/atom.go | 2 +- internal/builder/builder.go | 17 ++++++++++------- internal/builder/template.go | 4 ++-- internal/server/server.go | 2 +- internal/sitemap/sitemap.go | 4 ++-- internal/website/mux.go | 2 +- 6 files changed, 17 insertions(+), 14 deletions(-) (limited to 'internal') diff --git a/internal/atom/atom.go b/internal/atom/atom.go index a5965a4..19ad0d1 100644 --- a/internal/atom/atom.go +++ b/internal/atom/atom.go @@ -7,7 +7,7 @@ import ( "website/internal/config" ) -func MakeTagURI(config config.Config, specific string) string { +func MakeTagURI(config *config.Config, specific string) string { return "tag:" + config.OriginalDomain + "," + config.DomainStartDate + ":" + specific } diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 4436151..177fa2f 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -86,7 +86,7 @@ func writerToFile(writer io.WriterTo, pathParts ...string) error { return nil } -func build(outDir string, config config.Config) (*Result, error) { +func build(outDir string, config *config.Config) (*Result, error) { log.Debug("output", "dir", outDir) r := &Result{ Hashes: make([]string, 0), @@ -252,16 +252,19 @@ func build(outDir string, config config.Config) (*Result, error) { return r, nil } -func BuildSite(ioConfig IOConfig) (*Result, error) { - config, err := config.GetConfig() - if err != nil { - return nil, errors.WithMessage(err, "could not get config") +func BuildSite(ioConfig IOConfig, cfg *config.Config) (*Result, error) { + if cfg == nil { + var err error + cfg, err = config.GetConfig() + if err != nil { + return nil, errors.WithMessage(err, "could not get config") + } } - config.InjectLiveReload = ioConfig.Development + cfg.InjectLiveReload = ioConfig.Development compressFiles = !ioConfig.Development templates.Setup() loadCSS() - return build(ioConfig.Destination, *config) + return build(ioConfig.Destination, cfg) } diff --git a/internal/builder/template.go b/internal/builder/template.go index da45fb7..d46844d 100644 --- a/internal/builder/template.go +++ b/internal/builder/template.go @@ -66,7 +66,7 @@ func (q *QueryDocument) Find(selector string) *QuerySelection { return &QuerySelection{q.Document.Find(selector)} } -func renderRobotsTXT(config config.Config) (io.Reader, error) { +func renderRobotsTXT(config *config.Config) (io.Reader, error) { r, w := io.Pipe() tpl, err := template.ParseFiles("templates/robots.tmpl") if err != nil { @@ -87,7 +87,7 @@ func renderRobotsTXT(config config.Config) (io.Reader, error) { func renderFeed( title string, - config config.Config, + config *config.Config, posts []content.Post, specific string, ) (io.Reader, error) { diff --git a/internal/server/server.go b/internal/server/server.go index 00cc022..469485f 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -108,7 +108,7 @@ func serverHeaderHandler(wrappedHandler http.Handler) http.Handler { } func rebuild(builderConfig builder.IOConfig, config *cfg.Config) error { - r, err := builder.BuildSite(builderConfig) + r, err := builder.BuildSite(builderConfig, config) if err != nil { return errors.WithMessage(err, "could not build site") } diff --git a/internal/sitemap/sitemap.go b/internal/sitemap/sitemap.go index a38e277..a45ebd9 100644 --- a/internal/sitemap/sitemap.go +++ b/internal/sitemap/sitemap.go @@ -13,9 +13,9 @@ type Sitemap struct { Sitemap *sitemap.Sitemap } -func New(cfg config.Config) *Sitemap { +func New(cfg *config.Config) *Sitemap { return &Sitemap{ - config: &cfg, + config: cfg, Sitemap: sitemap.New(), } } diff --git a/internal/website/mux.go b/internal/website/mux.go index c286903..c125561 100644 --- a/internal/website/mux.go +++ b/internal/website/mux.go @@ -50,7 +50,7 @@ func (fn WrappedWebHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { if err := fn.handler(w, r); err != nil { if strings.Contains(r.Header.Get("Accept"), "text/html") { w.WriteHeader(err.Code) - err := templates.Error(*fn.config, r.URL.Path, err).Render(r.Context(), w) + err := templates.Error(fn.config, r.URL.Path, err).Render(r.Context(), w) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } -- cgit 1.4.1