summaryrefslogtreecommitdiff
path: root/cmd/home/main.go
blob: 3f04b39052c5827e8442c252ad070d61efda1fe6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main

import (
	"os"
	"os/signal"
	"syscall"

	"git.sr.ht/~a73x/home/web"
	"go.uber.org/zap"
)

func main() {
	logger, _ := zap.NewProduction()
	server, err := web.New(logger)
	if err != nil {
		logger.Fatal("failed to start webserver", zap.Error(err))
	}

	done := make(chan os.Signal, 0)
	signal.Notify(done, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
	logger.Info("Starting web server")

	go func() {
		if err := server.ListenAndServe(); err != nil {
			logger.Error("fail running web server", zap.Error(err))
		}
		done <- nil
	}()

	<-done
	logger.Info("Stopping web server")
}