Files
script/input_stdin.go

37 lines
630 B
Go
Raw Normal View History

2025-08-30 22:00:31 +03:00
package script
import (
"bufio"
"io"
"os"
"strings"
)
// StdinReader reads from stdin
type StdinReader struct {
scanner bufio.Scanner
}
func NewStdinReader() *StdinReader {
return &StdinReader{
scanner: *bufio.NewScanner(os.Stdin),
}
}
// Read reads from stdin until \n character
// then splits result at "," separator and returns
// the resulting slice.
// It returns EOF when nothing left to read.
func (s *StdinReader) Read() ([]string, error) {
2025-08-30 22:00:31 +03:00
if !s.scanner.Scan() {
err := s.scanner.Err()
if err == nil {
return nil, io.EOF
}
return nil, err
}
return strings.Split(s.scanner.Text(), ","), nil
}