1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
// ================================================================
// Like Ruby's ARGF.
// ================================================================
package argf
import (
"io"
"os"
)
func Open(filenames []string) (io.Reader, error) {
if len(filenames) == 0 {
return os.Stdin, nil
} else {
readers := make([]io.Reader, len(filenames))
for i, filename := range filenames {
handle, err := os.Open(filename)
if err == nil {
readers[i] = handle
} else {
return nil, err
}
}
return io.MultiReader(readers...), nil
}
}
|