Split main into openStore, newHandler, and run helpers.
This commit is contained in:
+21
-6
@@ -21,8 +21,18 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
_ = godotenv.Load()
|
_ = godotenv.Load()
|
||||||
listen := listenAddr()
|
|
||||||
|
|
||||||
|
st := openStore()
|
||||||
|
defer st.Close()
|
||||||
|
|
||||||
|
uploader := spacesUploader()
|
||||||
|
logSpaces(uploader)
|
||||||
|
|
||||||
|
handler := newHandler(st, uploader)
|
||||||
|
run(&http.Server{Addr: listenAddr(), Handler: handler})
|
||||||
|
}
|
||||||
|
|
||||||
|
func openStore() *store.Store {
|
||||||
databaseURL := strings.TrimSpace(os.Getenv("DATABASE_URL"))
|
databaseURL := strings.TrimSpace(os.Getenv("DATABASE_URL"))
|
||||||
if databaseURL == "" {
|
if databaseURL == "" {
|
||||||
log.Fatal("DATABASE_URL is required")
|
log.Fatal("DATABASE_URL is required")
|
||||||
@@ -31,16 +41,19 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("database: %v", err)
|
log.Fatalf("database: %v", err)
|
||||||
}
|
}
|
||||||
defer st.Close()
|
|
||||||
log.Printf("database: postgres")
|
log.Printf("database: postgres")
|
||||||
|
return st
|
||||||
|
}
|
||||||
|
|
||||||
uploader := spacesUploader()
|
func logSpaces(uploader blob.Uploader) {
|
||||||
if uploader.Enabled() {
|
if uploader.Enabled() {
|
||||||
log.Printf("avatars: digitalocean spaces")
|
log.Printf("avatars: digitalocean spaces")
|
||||||
} else {
|
return
|
||||||
|
}
|
||||||
log.Printf("avatars: uploads disabled (set SPACES_* to enable)")
|
log.Printf("avatars: uploads disabled (set SPACES_* to enable)")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newHandler(st *store.Store, uploader blob.Uploader) http.Handler {
|
||||||
srv, err := web.New(st, st.SessionStore(), plumber.TemplateFS, plumber.StaticFS, web.Config{
|
srv, err := web.New(st, st.SessionStore(), plumber.TemplateFS, plumber.StaticFS, web.Config{
|
||||||
AdminUsername: os.Getenv("ADMIN_USERNAME"),
|
AdminUsername: os.Getenv("ADMIN_USERNAME"),
|
||||||
SecureCookie: os.Getenv("SECURE_COOKIE") == "1",
|
SecureCookie: os.Getenv("SECURE_COOKIE") == "1",
|
||||||
@@ -49,11 +62,13 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("server: %v", err)
|
log.Fatalf("server: %v", err)
|
||||||
}
|
}
|
||||||
|
return srv.Handler()
|
||||||
|
}
|
||||||
|
|
||||||
httpSrv := &http.Server{Addr: listen, Handler: srv.Handler()}
|
func run(httpSrv *http.Server) {
|
||||||
errCh := make(chan error, 1)
|
errCh := make(chan error, 1)
|
||||||
go func() {
|
go func() {
|
||||||
log.Printf("listening on %s", listen)
|
log.Printf("listening on %s", httpSrv.Addr)
|
||||||
errCh <- httpSrv.ListenAndServe()
|
errCh <- httpSrv.ListenAndServe()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user