47 lines
875 B
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)
|
|
}
|