2018-12-23 00:16:50 +00:00
|
|
|
//go:generate go run assets_generate.go
|
|
|
|
// The "go:generate" directive compiles static assets by running assets_generate.go
|
|
|
|
|
|
|
|
package data
|
|
|
|
|
|
|
|
import (
|
|
|
|
"html/template"
|
|
|
|
"io/ioutil"
|
2020-05-08 11:15:21 -04:00
|
|
|
"time"
|
2018-12-23 00:16:50 +00:00
|
|
|
|
|
|
|
"github.com/pkg/errors"
|
2019-07-28 18:47:38 +01:00
|
|
|
"github.com/rclone/rclone/fs"
|
2018-12-23 00:16:50 +00:00
|
|
|
)
|
|
|
|
|
2020-05-08 11:15:21 -04:00
|
|
|
func AfterEpoch(t time.Time) bool {
|
|
|
|
return t.After(time.Time{})
|
|
|
|
}
|
|
|
|
|
2020-04-30 14:24:11 -04:00
|
|
|
// GetTemplate returns the HTML template for serving directories via HTTP/Webdav
|
|
|
|
func GetTemplate(tmpl string) (tpl *template.Template, err error) {
|
|
|
|
var templateString string
|
|
|
|
if tmpl == "" {
|
|
|
|
templateFile, err := Assets.Open("index.html")
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.Wrap(err, "get template open")
|
|
|
|
}
|
|
|
|
|
|
|
|
defer fs.CheckClose(templateFile, &err)
|
|
|
|
|
|
|
|
templateBytes, err := ioutil.ReadAll(templateFile)
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.Wrap(err, "get template read")
|
|
|
|
}
|
|
|
|
|
|
|
|
templateString = string(templateBytes)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
templateFile, err := ioutil.ReadFile(tmpl)
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.Wrap(err, "get template open")
|
|
|
|
}
|
|
|
|
|
|
|
|
templateString = string(templateFile)
|
2018-12-23 00:16:50 +00:00
|
|
|
}
|
|
|
|
|
2020-05-08 11:15:21 -04:00
|
|
|
funcMap := template.FuncMap{
|
|
|
|
"afterEpoch": AfterEpoch,
|
|
|
|
}
|
|
|
|
tpl, err = template.New("index").Funcs(funcMap).Parse(templateString)
|
2018-12-23 00:16:50 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, errors.Wrap(err, "get template parse")
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|