35 lines
497 B
Go
35 lines
497 B
Go
package sortcli
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
func Open(sources []string) io.Reader {
|
|
rs := make([]io.Reader, 0, len(sources))
|
|
|
|
for _, source := range sources {
|
|
var r io.Reader
|
|
|
|
if source == "-" {
|
|
r = os.Stdin
|
|
} else {
|
|
if _, err := os.Stat(source); err != nil {
|
|
log.Fatalf("file not exists: %s", source)
|
|
}
|
|
|
|
f, err := os.Open(source)
|
|
if err != nil {
|
|
log.Fatalf("file open file: %s", err)
|
|
}
|
|
|
|
r = f
|
|
}
|
|
|
|
rs = append(rs, r)
|
|
}
|
|
|
|
return io.MultiReader(rs...)
|
|
}
|