From c32cc2fb5aea85de19ea968366338e09e6fa3c6a Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sun, 7 Aug 2022 23:03:34 +0700 Subject: all: fix HTML template loaded during Serve on non-development The HTML template in the ServeOptions should not read when ciigo.Serve running on non-development environment. --- converter.go | 6 +++--- server.go | 21 ++++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/converter.go b/converter.go index 2d5c620..9fcbe97 100644 --- a/converter.go +++ b/converter.go @@ -41,10 +41,10 @@ func NewConverter(htmlTemplate string) (converter *Converter, err error) { bhtml, err = os.ReadFile(converter.htmlTemplate) if err != nil { - return nil, fmt.Errorf(`%s: %s: %w`, logp, converter.htmlTemplate, err) + tmplContent = templateIndexHTML + } else { + tmplContent = string(bhtml) } - - tmplContent = string(bhtml) } converter.tmpl, err = converter.tmpl.Parse(tmplContent) diff --git a/server.go b/server.go index 9765e04..4844564 100644 --- a/server.go +++ b/server.go @@ -33,6 +33,8 @@ func newServer(opts *ServeOptions) (srv *server, err error) { tmplNode *memfs.Node httpdOpts *libhttp.ServerOptions epInSearch *libhttp.Endpoint + + pathHtmlTemplate string ) if opts.Mfs == nil { @@ -74,17 +76,22 @@ func newServer(opts *ServeOptions) (srv *server, err error) { return nil, fmt.Errorf(`%s: %w`, logp, err) } - srv.converter, err = NewConverter(opts.HtmlTemplate) + if opts.IsDevelopment { + pathHtmlTemplate = opts.HtmlTemplate + } + + srv.converter, err = NewConverter(pathHtmlTemplate) if err != nil { return nil, fmt.Errorf(`%s: %w`, logp, err) } - // Optionally, load HTML template from memory file system. - tmplNode, _ = opts.Mfs.Get(internalTemplatePath) - if tmplNode != nil { - srv.converter.tmpl, err = srv.converter.tmpl.Parse(string(tmplNode.Content)) - if err != nil { - return nil, fmt.Errorf(`%s: %s`, logp, err) + if !opts.IsDevelopment { + tmplNode, _ = opts.Mfs.Get(internalTemplatePath) + if tmplNode != nil { + srv.converter.tmpl, err = srv.converter.tmpl.Parse(string(tmplNode.Content)) + if err != nil { + return nil, fmt.Errorf(`%s: %s`, logp, err) + } } } -- cgit v1.3