From f74ed0fda27fd4839281b41c8fc008e97985504f Mon Sep 17 00:00:00 2001 From: Gibheer Date: Mon, 19 Jan 2015 12:13:13 +0100 Subject: split stream opening into two functions This way it is easier to open files for reading and writing. --- main.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 73ea1b2..7a6bc5e 100644 --- a/main.go +++ b/main.go @@ -47,16 +47,26 @@ func open_output_stream(path string) (io.WriteCloser, error) { switch path { case "STDOUT": return os.Stdout, nil case "STDERR": return os.Stderr, nil - default: - var err error - output_stream, err := os.OpenFile(path, os.O_WRONLY | os.O_CREATE | os.O_TRUNC, 0600) - if err != nil { - return nil, err - } - return output_stream, nil + default: return open_stream(path, os.O_WRONLY | os.O_CREATE | os.O_TRUNC) } } +func open_input_stream(path string) (io.ReadCloser, error) { + switch path { + case "STDIN": return os.Stdin, nil + default: return open_stream(path, os.O_RDONLY) + } +} + +func open_stream(path string, flags int) (io.ReadWriteCloser, error) { + var err error + output_stream, err := os.OpenFile(path, flags, 0600) + if err != nil { + return nil, err + } + return output_stream, nil +} + // print the module help func print_modules() { fmt.Printf(`Usage: %s command args -- cgit v1.2.3-70-g09d2