hmm/fetch.go

35 lines
603 B
Go

package hmm
import (
"bufio"
"io"
"io/ioutil"
"net/http"
)
// Lines returns a chan containing one line of output from the remote url.
//
// Lines closes the internal chan after it's fetched all bytes. Errors are not
// propagated.
func Lines(url string) <-chan string {
r := make(chan string)
go func() {
defer close(r)
resp, err := http.Get(url)
if err != nil {
return
}
s := bufio.NewScanner(resp.Body)
for s.Scan() {
r <- s.Text()
}
// ignore errors
// if resp.StatusCode != http.StatusOK {}
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
return r
}