| 187 | } |
| 188 | |
| 189 | func getWriter(line string) (io.Writer, error) { |
| 190 | switch { |
| 191 | case line == "stderr": |
| 192 | return os.Stderr, nil |
| 193 | case line == "stdout": |
| 194 | return os.Stdout, nil |
| 195 | case strings.HasPrefix(line, "/"): |
| 196 | // does the file exist? |
| 197 | f, err := os.OpenFile(line, |
| 198 | os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) |
| 199 | if err != nil { |
| 200 | return nil, fmt.Errorf("unable to open file %s for creation or appending: %v", line, err) |
| 201 | } |
| 202 | return f, nil |
| 203 | } |
| 204 | return nil, fmt.Errorf("invalid option for writer: %s", line) |
| 205 | } |