bacheca/cmd/bacheca-server/main.go

47 lines
875 B
Go

package main
import (
"flag"
"fmt"
"net/http"
"os"
"os/signal"
"syscall"
"github.com/go-kit/kit/log"
svc "git.abbiamoundominio.org/hamcha/bacheca"
)
func main() {
httpPort := flag.Int("http.port", 8080, "HTTP listen port")
flag.Parse()
var logger log.Logger
{
logger = log.NewLogfmtLogger(os.Stderr)
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
logger = log.With(logger, "caller", log.DefaultCaller)
}
s := svc.MakeService()
handler := svc.MakeHTTPHandler(s, logger)
//TODO Add auth middleware
errs := make(chan error)
go func() {
c := make(chan os.Signal)
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
errs <- fmt.Errorf("%s", <-c)
}()
go func() {
bind := fmt.Sprintf(":%d", *httpPort)
logger.Log("transport", "HTTP", "addr", bind)
errs <- http.ListenAndServe(bind, handler)
}()
logger.Log("exit", <-errs)
}