diff options
| author | Felix Hanley <felix@userspace.com.au> | 2020-03-08 10:52:41 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2020-03-08 10:52:41 +0000 |
| commit | f878deb0f3033495637e85533a52369491fa6104 (patch) | |
| tree | 572b2ec8dff4525a322729e20bcd6c070f8436f2 /cmd | |
| parent | 58ec0bacb661f705b02db9bb584a551d1864f71a (diff) | |
| download | sws-f878deb0f3033495637e85533a52369491fa6104.tar.gz sws-f878deb0f3033495637e85533a52369491fa6104.tar.bz2 | |
Move templates and allow overriding
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/server/flags.go | 11 | ||||
| -rw-r--r-- | cmd/server/main.go | 2 | ||||
| -rw-r--r-- | cmd/server/routes.go | 11 |
3 files changed, 18 insertions, 6 deletions
diff --git a/cmd/server/flags.go b/cmd/server/flags.go index 5d83dc2..b64bed1 100644 --- a/cmd/server/flags.go +++ b/cmd/server/flags.go @@ -6,15 +6,18 @@ import ( ) func stringFlag(long, short, def, envvar, desc string) *string { - out := flag.String(long, def, desc) - if short != "" { - flag.StringVar(out, short, def, desc) - } if envvar != "" { if v := os.Getenv(envvar); v != "" { def = v } } + out := flag.String(long, def, desc) + if short != "" { + flag.StringVar(out, short, def, desc) + } + if out != nil && *out == "" { + return nil + } return out } diff --git a/cmd/server/main.go b/cmd/server/main.go index 900ef25..309e11b 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -28,6 +28,7 @@ var ( dsn *string domain *string logFile *string + override *string noMigrate *bool ) @@ -37,6 +38,7 @@ func init() { dsn = stringFlag("dsn", "", "file:sws.db?cache=shared", "DSN", "database password") domain = stringFlag("domain", "", "stats.userspace.com.au", "DOMAIN", "stats domain") logFile = stringFlag("log", "", "", "LOGFILE", "log to file") + override = stringFlag("override", "", "", "OVERRIDE", "override path") noMigrate = boolFlag("no-migrate", "m", false, "NOMIGRATE", "disable migrations") // Default to no log diff --git a/cmd/server/routes.go b/cmd/server/routes.go index c8d0264..7c6f37e 100644 --- a/cmd/server/routes.go +++ b/cmd/server/routes.go @@ -27,7 +27,13 @@ func createRouter(db sws.Store) (chi.Router, error) { tmplsAuthed := append(tmplsCommon, []string{"layouts/base.tmpl", "charts.tmpl", "timerange.tmpl"}...) tmplsPublic := append(tmplsCommon, "layouts/public.tmpl") - tmpls, err := LoadHTMLTemplateMap(map[string][]string{ + if override != nil { + loadOverrider = func(s string) string { + return filepath.Join(*override, s) + } + } + + tmpls, err := loadHTMLTemplateMap(map[string][]string{ "sites": append([]string{"sites.tmpl"}, tmplsAuthed...), "site": append([]string{"site.tmpl"}, tmplsAuthed...), "home": append([]string{"home.tmpl"}, tmplsPublic...), @@ -74,7 +80,8 @@ func createRouter(db sws.Store) (chi.Router, error) { r.Get("/*", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { p := strings.TrimPrefix(r.URL.Path, "/") - if b, err := StaticLoadTemplate(p); err == nil { + debug("loading", p) + if b, err := loadTemplate(p); err == nil { name := filepath.Base(p) http.ServeContent(w, r, name, time.Now(), bytes.NewReader(b)) } |
