diff options
author | Silvan Jegen <s.jegen@gmail.com> | 2016-12-09 21:12:18 +0100 |
---|---|---|
committer | Silvan Jegen <s.jegen@gmail.com> | 2016-12-09 21:12:18 +0100 |
commit | 26412f3077698dabcdbdf6a6e40276c56a6f74b5 (patch) | |
tree | c10ed9b5dbe3612da22247ec6c5afcd1879495eb /input/stdin.go | |
parent | 70299d51aeb8dc53a15eb06d46d4d2419619fd47 (diff) |
Reorganize files
Diffstat (limited to 'input/stdin.go')
-rw-r--r-- | input/stdin.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/input/stdin.go b/input/stdin.go new file mode 100644 index 0000000..5acfa5e --- /dev/null +++ b/input/stdin.go @@ -0,0 +1,36 @@ +package input + +import ( + "bufio" + "fmt" + "io" + "os" + + "github.com/Shugyousha/stasher/work" +) + +type StdinInput struct { + retchan chan *work.Work +} + +func (i *StdinInput) Start() chan *work.Work { + i.retchan = make(chan *work.Work, 100) + r := bufio.NewReader(os.Stdin) + + go func() { + for { + bs, err := r.ReadBytes(byte('\n')) + if err == io.EOF { + break + } + if err != nil { + fmt.Printf("Error when reading input from Stdin: %q", err) + os.Exit(1) + } + i.retchan <- &work.Work{Data: bs} + } + close(i.retchan) + }() + + return i.retchan +} |