Files
script/input_stdin.go
Dmitry Fedotov 454c632462 feat: revise API, add README.md, LICENSE (#2)
Co-authored-by: Dmitry Fedotov <dmitry@uint32.ru>
Co-committed-by: Dmitry Fedotov <dmitry@uint32.ru>
2025-08-31 13:38:54 +03:00

37 lines
630 B
Go

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) {
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
}