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

26
file.go Normal file
View File

@@ -0,0 +1,26 @@
package main
import (
"os"
)
func file(filename string, create bool) (*os.File, error) {
switch filename {
case "stdin":
return os.Stdin, nil
case "stdout":
return os.Stdout, nil
default:
var file *os.File
var err error
if create {
file, err = os.Create(filename)
} else {
file, err = os.Open(filename)
}
if err != nil {
return nil, err
}
return file, nil
}
}