2022-12-11 05:52:47 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"flag"
|
2022-12-12 17:28:23 +00:00
|
|
|
"fmt"
|
2023-02-03 05:05:17 +00:00
|
|
|
"html/template"
|
2022-12-11 05:52:47 +00:00
|
|
|
"log"
|
|
|
|
"net/http"
|
2023-02-03 05:05:17 +00:00
|
|
|
"path/filepath"
|
2022-12-11 05:52:47 +00:00
|
|
|
|
2022-12-19 03:32:23 +00:00
|
|
|
"git.icyphox.sh/legit/config"
|
|
|
|
"git.icyphox.sh/legit/routes"
|
2022-12-11 05:52:47 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2024-01-30 04:08:08 +00:00
|
|
|
const version string = "0.3.0-nilix"
|
2022-12-11 05:52:47 +00:00
|
|
|
var cfg string
|
|
|
|
flag.StringVar(&cfg, "config", "./config.yaml", "path to config file")
|
|
|
|
flag.Parse()
|
|
|
|
|
2023-02-04 16:34:21 +00:00
|
|
|
c, err := config.Read(cfg, version)
|
2022-12-11 05:52:47 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2022-12-22 05:50:02 +00:00
|
|
|
if err := UnveilPaths([]string{
|
|
|
|
c.Dirs.Static,
|
|
|
|
c.Repo.ScanPath,
|
2022-12-22 05:52:47 +00:00
|
|
|
c.Dirs.Templates,
|
|
|
|
},
|
2022-12-22 05:50:02 +00:00
|
|
|
"r"); err != nil {
|
|
|
|
log.Fatalf("unveil: %s", err)
|
2022-12-21 14:17:33 +00:00
|
|
|
}
|
2024-01-30 04:08:08 +00:00
|
|
|
|
2023-02-03 05:05:17 +00:00
|
|
|
tpath := filepath.Join(c.Dirs.Templates, "*")
|
|
|
|
t := template.Must(template.ParseGlob(tpath))
|
2022-12-18 05:34:11 +00:00
|
|
|
|
2023-02-03 05:05:17 +00:00
|
|
|
mux := routes.Handlers(c, t)
|
2022-12-12 17:28:23 +00:00
|
|
|
addr := fmt.Sprintf("%s:%d", c.Server.Host, c.Server.Port)
|
|
|
|
log.Println("starting server on", addr)
|
|
|
|
log.Fatal(http.ListenAndServe(addr, mux))
|
2022-12-11 05:52:47 +00:00
|
|
|
}
|