diff options
Diffstat (limited to 'svc/cache.go')
-rw-r--r-- | svc/cache.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/svc/cache.go b/svc/cache.go index 0963892..e2078d7 100644 --- a/svc/cache.go +++ b/svc/cache.go @@ -2,6 +2,7 @@ package svc // import "github.com/getwtxt/getwtxt/svc" import ( "bytes" + "html/template" "io/ioutil" "os" "sync" @@ -24,6 +25,41 @@ type staticAssets struct { cssMod time.Time } +func initTemplates() *template.Template { + confObj.Mu.RLock() + assetsDir := confObj.AssetsDir + confObj.Mu.RUnlock() + + return template.Must(template.ParseFiles(assetsDir + "/tmpl/index.html")) +} + +func initAssets() *staticAssets { + confObj.Mu.RLock() + defer confObj.Mu.RUnlock() + + css, err := os.Open(confObj.AssetsDir + "/style.css") + errLog("", err) + cssStat, err := css.Stat() + errLog("", err) + cssData, err := ioutil.ReadAll(css) + errLog("", err) + + indStat, err := os.Stat(confObj.AssetsDir + "/tmpl/index.html") + errLog("", err) + + var b []byte + buf := bytes.NewBuffer(b) + errLog("", tmpls.ExecuteTemplate(buf, "index.html", confObj.Instance)) + + return &staticAssets{ + mu: sync.RWMutex{}, + index: buf.Bytes(), + indexMod: indStat.ModTime(), + css: cssData, + cssMod: cssStat.ModTime(), + } +} + func cacheTimer() bool { confObj.Mu.RLock() answer := time.Since(confObj.LastCache) > confObj.CacheInterval |