cmd/legit/main.go (view raw)
1package main
2
3import (
4 "fmt"
5 "log"
6 "net/http"
7
8 "codeberg.org/maxwelljensen/legit/internal/config"
9 "codeberg.org/maxwelljensen/legit/internal/routes"
10 "github.com/alexflint/go-arg"
11)
12
13var (
14 version = "dev"
15 buildDate = "unknown"
16)
17
18type args struct {
19 Config string `arg:"--config" default:"./config.yaml" help:"path to config file"`
20}
21
22func (args) Version() string {
23 return fmt.Sprintf("legit %s (built %s)", version, buildDate)
24}
25
26func main() {
27 var a args
28 arg.MustParse(&a)
29
30 c, err := config.Read(a.Config)
31 if err != nil {
32 log.Fatal(err)
33 }
34
35 if err := UnveilPaths([]string{
36 c.Dirs.Static,
37 c.Repo.ScanPath,
38 c.Dirs.Templates,
39 },
40 "r"); err != nil {
41 log.Fatalf("unveil: %s", err)
42 }
43
44 mux := routes.Handlers(c)
45 addr := fmt.Sprintf("%s:%d", c.Server.Host, c.Server.Port)
46 log.Println("starting server on", addr)
47 log.Fatal(http.ListenAndServe(addr, mux))
48}