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) }