func main()

in cmd/moxy/main.go [18:50]


func main() {
	logLevel := zap.LevelFlag(
		"loglevel", zapcore.InfoLevel,
		"set log level to one of: DEBUG, INFO (default), WARN, ERROR, DPANIC, PANIC, FATAL",
	)
	username := flag.String("username", "elastic", "authentication username to mimic ES")
	password := flag.String("password", "", "authentication username to mimic ES")
	port := flag.Int("port", 9200, "http port to listen on")
	flag.Parse()
	zapcfg := zap.NewProductionConfig()
	zapcfg.EncoderConfig.EncodeTime = zapcore.RFC3339TimeEncoder
	zapcfg.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
	zapcfg.Encoding = "console"
	zapcfg.Level = zap.NewAtomicLevelAt(*logLevel)
	logger, err := zapcfg.Build()
	if err != nil {
		panic(err)
	}
	defer logger.Sync()
	options := []proxy.StubESOption{
		proxy.StubESWithLogger(logger),
	}
	if *username != "" && *password != "" {
		options = append(options, proxy.StubESWithAuth(*username, *password))
	}
	s := http.Server{
		Addr:    fmt.Sprintf(":%d", *port),
		Handler: proxy.NewHandlerStubES(options...),
	}
	if err := s.ListenAndServe(); err != nil {
		logger.Fatal("listen error", zap.Error(err))
	}
}