func()

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
}