in cmd/apmtool/espoll.go [55:95]
func (cmd *Commands) pollDocs(ctx context.Context, c *cli.Command) error {
cfg := config{
query: c.String("query"),
esURL: cmd.cfg.ElasticsearchURL,
esUsername: cmd.cfg.Username,
esPassword: cmd.cfg.Password,
tlsSkipVerify: cmd.cfg.TLSSkipVerify,
target: c.String("target"),
timeout: c.Duration("timeout"),
hits: c.Uint("min-hits"),
}
query := c.String("query")
if query == "" {
stat, err := os.Stdin.Stat()
if err != nil {
log.Fatalf("failed to stat stdin: %s", err.Error())
}
if stat.Size() == 0 {
log.Fatal("empty -query flag and stdin, please set one.")
}
b, err := io.ReadAll(os.Stdin)
if err != nil {
log.Fatalf("failed to read stdin: %s", err.Error())
}
query = string(strings.Trim(string(b), "\n"))
}
log.Println("query:", query)
ctxMain, cancel := signal.NotifyContext(ctx, os.Interrupt, os.Kill)
defer cancel()
if err := Main(ctxMain, cfg); err != nil {
log.Fatalf("ERROR: %s", err.Error())
}
return nil
}