1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

config: Combine TemplateDir and PublicDir into UIDir

- Define static names for `templates` and `static`
This commit is contained in:
James Hillyerd
2018-03-25 11:55:23 -07:00
parent b50c926745
commit 04bb842549
4 changed files with 15 additions and 12 deletions

View File

@@ -57,10 +57,9 @@ type POP3 struct {
// Web contains the HTTP server configuration.
type Web struct {
Addr string `required:"true" default:"0.0.0.0:9000" desc:"Web server IP4 host:port"`
TemplateDir string `required:"true" default:"ui/templates" desc:"Theme template dir"`
TemplateCache bool `required:"true" default:"true" desc:"Cache templates after first use?"`
PublicDir string `required:"true" default:"ui/static" desc:"Theme public dir"`
UIDir string `required:"true" default:"ui" desc:"User interface dir"`
GreetingFile string `required:"true" default:"ui/greeting.html" desc:"Home page greeting HTML"`
TemplateCache bool `required:"true" default:"true" desc:"Cache templates after first use?"`
MailboxPrompt string `required:"true" default:"@inbucket" desc:"Prompt next to mailbox input"`
CookieAuthKey string `desc:"Session cipher key (text)"`
MonitorVisible bool `required:"true" default:"true" desc:"Show monitor tab in UI?"`

View File

@@ -36,8 +36,7 @@ func setupWebServer(mm message.Manager) *bytes.Buffer {
http.DefaultServeMux = http.NewServeMux()
cfg := &config.Root{
Web: config.Web{
TemplateDir: "../themes/bootstrap/templates",
PublicDir: "../themes/bootstrap/public",
UIDir: "../ui",
},
}
shutdownChan := make(chan bool)

View File

@@ -6,6 +6,7 @@ import (
"expvar"
"net"
"net/http"
"path/filepath"
"time"
"github.com/gorilla/mux"
@@ -20,6 +21,11 @@ import (
// Handler is a function type that handles an HTTP request in Inbucket
type Handler func(http.ResponseWriter, *http.Request, *Context) error
const (
staticDir = "static"
templateDir = "templates"
)
var (
// msgHub holds a reference to the message pub/sub system
msgHub *msghub.Hub
@@ -59,10 +65,10 @@ func Initialize(
manager = mm
// Content Paths
log.Infof("HTTP templates mapped to %q", conf.Web.TemplateDir)
log.Infof("HTTP static content mapped to %q", conf.Web.PublicDir)
staticPath := filepath.Join(conf.Web.UIDir, staticDir)
log.Infof("Web UI content mapped to path: %s", conf.Web.UIDir)
Router.PathPrefix("/public/").Handler(http.StripPrefix("/public/",
http.FileServer(http.Dir(conf.Web.PublicDir))))
http.FileServer(http.Dir(staticPath))))
http.Handle("/", Router)
// Session cookie setup

View File

@@ -5,7 +5,6 @@ import (
"net/http"
"path"
"path/filepath"
"strings"
"sync"
"github.com/jhillyerd/inbucket/pkg/log"
@@ -49,8 +48,7 @@ func ParseTemplate(name string, partial bool) (*template.Template, error) {
return t, nil
}
tempPath := strings.Replace(name, "/", string(filepath.Separator), -1)
tempFile := filepath.Join(rootConfig.Web.TemplateDir, tempPath)
tempFile := filepath.Join(rootConfig.Web.UIDir, templateDir, filepath.FromSlash(name))
log.Tracef("Parsing template %v", tempFile)
var err error
@@ -62,7 +60,8 @@ func ParseTemplate(name string, partial bool) (*template.Template, error) {
t, err = t.ParseFiles(tempFile)
} else {
t = template.New("_base.html").Funcs(TemplateFuncs)
t, err = t.ParseFiles(filepath.Join(rootConfig.Web.TemplateDir, "_base.html"), tempFile)
t, err = t.ParseFiles(
filepath.Join(rootConfig.Web.UIDir, templateDir, "_base.html"), tempFile)
}
if err != nil {
return nil, err