all repos — legit @ a76a59cf5cf5e98b53a1e418f468ca287c080e3a

Unnamed repository; edit this file 'description' to name the repository.

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}