aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2020-03-08 10:52:41 +0000
committerFelix Hanley <felix@userspace.com.au>2020-03-08 10:52:41 +0000
commitf878deb0f3033495637e85533a52369491fa6104 (patch)
tree572b2ec8dff4525a322729e20bcd6c070f8436f2 /cmd
parent58ec0bacb661f705b02db9bb584a551d1864f71a (diff)
downloadsws-f878deb0f3033495637e85533a52369491fa6104.tar.gz
sws-f878deb0f3033495637e85533a52369491fa6104.tar.bz2
Move templates and allow overriding
Diffstat (limited to 'cmd')
-rw-r--r--cmd/server/flags.go11
-rw-r--r--cmd/server/main.go2
-rw-r--r--cmd/server/routes.go11
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))
}