refactoring infile setup

master
Jordan Orelli 10 years ago
parent 29e583b83e
commit c2f19e61ef

@ -150,6 +150,25 @@ func (c *chunk) send(w *bufio.Writer, responses chan maybe) *sendResult {
return stats
}
func infile() *os.File {
if options.pipe {
return os.Stdin
}
args := flag.Args()
if len(args) < 1 {
usage(1)
}
fname := args[0]
f, err := os.Open(fname)
if err != nil {
fmt.Fprintf(os.Stderr, "unable to open file %s: %v\n", fname, err)
os.Exit(1)
}
return f
}
func main() {
flag.Parse()
@ -183,31 +202,13 @@ func main() {
defer pprof.StopCPUProfile()
}
var infile *os.File
if options.pipe {
infile = os.Stdin
} else {
args := flag.Args()
if len(args) < 1 {
usage(1)
}
fname := args[0]
var err error
infile, err = os.Open(fname)
if err != nil {
fmt.Printf("unable to open file %s: %v\n", fname, err)
os.Exit(1)
}
defer infile.Close()
}
f := infile()
responses := make(chan maybe)
go streamValues(conn, responses)
c := make(chan maybe)
go streamValues(infile, c)
go streamValues(f, c)
w := bufio.NewWriterSize(conn, 16384)

Loading…
Cancel
Save