mirror of
https://github.com/artvs18/PostgreSQL-docker-image.git
synced 2025-06-04 05:58:00 +02:00
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"github.com/labstack/echo/middleware"
|
|
"net"
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/labstack/echo"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
var logger = logrus.New()
|
|
|
|
func main() {
|
|
var socketPath string
|
|
flag.StringVar(&socketPath, "socket", "/run/guest-services/backend.sock", "Unix domain socket to listen on")
|
|
flag.Parse()
|
|
|
|
_ = os.RemoveAll(socketPath)
|
|
|
|
logger.SetOutput(os.Stdout)
|
|
|
|
logMiddleware := middleware.LoggerWithConfig(middleware.LoggerConfig{
|
|
Skipper: middleware.DefaultSkipper,
|
|
Format: `{"time":"${time_rfc3339_nano}","id":"${id}",` +
|
|
`"method":"${method}","uri":"${uri}",` +
|
|
`"status":${status},"error":"${error}"` +
|
|
`}` + "\n",
|
|
CustomTimeFormat: "2006-01-02 15:04:05.00000",
|
|
Output: logger.Writer(),
|
|
})
|
|
|
|
logger.Infof("Starting listening on %s\n", socketPath)
|
|
router := echo.New()
|
|
router.HideBanner = true
|
|
router.Use(logMiddleware)
|
|
startURL := ""
|
|
|
|
ln, err := listen(socketPath)
|
|
if err != nil {
|
|
logger.Fatal(err)
|
|
}
|
|
router.Listener = ln
|
|
|
|
router.GET("/hello", hello)
|
|
|
|
logger.Fatal(router.Start(startURL))
|
|
}
|
|
|
|
func listen(path string) (net.Listener, error) {
|
|
return net.Listen("unix", path)
|
|
}
|
|
|
|
func hello(ctx echo.Context) error {
|
|
return ctx.JSON(http.StatusOK, HTTPMessageBody{Message: "hello"})
|
|
}
|
|
|
|
type HTTPMessageBody struct {
|
|
Message string
|
|
}
|