func()

in internal/command/shared/customaction/customaction.go [124:150]


func (c *Command) readFromStdin() ([]byte, error) {
	var output []byte
	var needsPackData bool

	scanner := pktline.NewScanner(c.ReadWriter.In)
	for scanner.Scan() {
		line := scanner.Bytes()
		output = append(output, line...)

		if pktline.IsFlush(line) {
			break
		}

		if !needsPackData && !pktline.IsRefRemoval(line) {
			needsPackData = true
		}
	}

	if needsPackData {
		packData := new(bytes.Buffer)
		_, err := io.Copy(packData, c.ReadWriter.In)

		output = append(output, packData.Bytes()...)
		return output, err
	}
	return output, nil
}