Default targets to stdin and abstract file handling

This commit is contained in:
Tomás Senart
2013-09-11 14:10:45 +01:00
parent 3059854751
commit 7cd13327c6
6 changed files with 50 additions and 73 deletions

View File

@@ -3,9 +3,7 @@ package main
import (
"flag"
vegeta "github.com/tsenart/vegeta/lib"
"io"
"log"
"os"
)
func reportCmd(args []string) command {
@@ -36,36 +34,23 @@ func report(reporter, input, output string) error {
rep = vegeta.ReportText
}
var in io.Reader
switch input {
case "stdin":
in = os.Stdin
default:
file, err := os.Open(input)
if err != nil {
return err
}
defer file.Close()
in = file
in, err := file(input, false)
if err != nil {
return err
}
defer in.Close()
var out io.Writer
switch output {
case "stdout":
out = os.Stdout
default:
file, err := os.Create(output)
if err != nil {
return err
}
defer file.Close()
out = file
out, err := file(output, true)
if err != nil {
return err
}
defer out.Close()
results := vegeta.Results{}
if err := results.ReadFrom(in); err != nil {
return err
}
if err := rep(results, out); err != nil {
return err
}