2022-05-29 04:45:44 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2022-05-29 06:26:36 +00:00
|
|
|
"net/http"
|
2022-05-31 05:38:51 +00:00
|
|
|
core "nilfm.cc/git/nirvash/archetype"
|
2022-06-03 04:05:36 +00:00
|
|
|
shell "nilfm.cc/git/nirvash/lfo"
|
2022-05-29 06:26:36 +00:00
|
|
|
"nilfm.cc/git/quartzgun/indentalUserDB"
|
|
|
|
"nilfm.cc/git/quartzgun/middleware"
|
|
|
|
"nilfm.cc/git/quartzgun/renderer"
|
|
|
|
"nilfm.cc/git/quartzgun/router"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
2022-05-29 04:45:44 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2022-05-31 05:38:51 +00:00
|
|
|
cfg := core.ReadConfig()
|
2022-05-29 06:26:36 +00:00
|
|
|
udb := indentalUserDB.CreateIndentalUserDB(
|
|
|
|
filepath.Join(
|
2022-05-31 05:38:51 +00:00
|
|
|
core.GetConfigLocation(),
|
2022-05-29 06:26:36 +00:00
|
|
|
"user.db"))
|
2022-05-31 05:38:51 +00:00
|
|
|
if core.ProcessCmd(os.Args, udb, cfg) {
|
2022-05-29 06:26:36 +00:00
|
|
|
os.Exit(0)
|
|
|
|
}
|
2022-05-31 05:38:51 +00:00
|
|
|
if cfg.IsNull() {
|
|
|
|
cfg.RunWizard()
|
2022-05-29 06:26:36 +00:00
|
|
|
}
|
|
|
|
|
2022-05-31 05:38:51 +00:00
|
|
|
cfg.Adapter.Init(cfg)
|
|
|
|
|
2022-05-29 06:26:36 +00:00
|
|
|
rtr := &router.Router{
|
|
|
|
StaticPaths: map[string]string{
|
|
|
|
"/static": cfg.AssetRoot,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2022-06-05 04:34:20 +00:00
|
|
|
rtr.Get("/login",renderer.Template(
|
2022-05-29 06:26:36 +00:00
|
|
|
"templates/login.html"))
|
|
|
|
|
|
|
|
rtr.Post("/login", middleware.Authorize("/", udb, "/login?tryagain=1"))
|
|
|
|
|
|
|
|
rtr.Get("/", middleware.Protected(
|
2022-06-03 04:56:38 +00:00
|
|
|
shell.WithAdapter(
|
|
|
|
renderer.Template(
|
|
|
|
"templates/cms_list.html",
|
|
|
|
"templates/header.html",
|
|
|
|
"templates/footer.html"), cfg.Adapter), http.MethodGet, udb, "/login"))
|
|
|
|
|
2022-06-05 04:34:20 +00:00
|
|
|
rtr.Get(`/edit/(?P<Slug>\S+)`, middleware.Fortify(middleware.Protected(
|
2022-06-03 04:56:38 +00:00
|
|
|
shell.WithAdapter(
|
|
|
|
renderer.Template(
|
|
|
|
"templates/cms_edit.html",
|
|
|
|
"templates/header.html",
|
2022-06-05 04:34:20 +00:00
|
|
|
"templates/footer.html"), cfg.Adapter), http.MethodGet, udb, "/login")))
|
|
|
|
|
|
|
|
rtr.Post(`/save/(?P<Slug>\S+)`, middleware.Defend(middleware.Protected(
|
|
|
|
shell.WithAdapter(
|
|
|
|
shell.EnsurePageData(
|
|
|
|
renderer.Template(
|
|
|
|
"templates/cms_save.html",
|
|
|
|
"templates/header.html",
|
|
|
|
"templates/footer.html")), cfg.Adapter), http.MethodGet, udb, "/login"), udb, "/"))
|
2022-05-29 06:26:36 +00:00
|
|
|
|
|
|
|
http.ListenAndServe(":8080", rtr)
|
|
|
|
}
|