init: basic tools

This commit is contained in:
2025-08-30 22:00:31 +03:00
commit ec5db88f97
13 changed files with 467 additions and 0 deletions

36
input_scv.go Normal file
View File

@@ -0,0 +1,36 @@
package script
import (
"context"
"encoding/csv"
"os"
)
// CSV creates csv.Reader reading from filename.
func NewCSVReader(filename string) (*CSVReader, error) {
return newCSVreader(filename)
}
type CSVReader struct {
f *os.File
rdr *csv.Reader
}
func (c *CSVReader) Read(context.Context) ([]string, error) {
return c.rdr.Read()
}
func (c *CSVReader) Close() error {
return c.f.Close()
}
func newCSVreader(name string) (*CSVReader, error) {
f, err := os.Open(name)
if err != nil {
return nil, err
}
csvr := csv.NewReader(f)
return &CSVReader{f: f, rdr: csvr}, nil
}