DoRun executes fsql.Run and returns the output.
(query string)
| 396 | |
| 397 | // DoRun executes fsql.Run and returns the output. |
| 398 | func DoRun(query string) string { |
| 399 | stdout := os.Stdout |
| 400 | ch := make(chan string) |
| 401 | |
| 402 | r, w, err := os.Pipe() |
| 403 | if err != nil { |
| 404 | return "" |
| 405 | } |
| 406 | os.Stdout = w |
| 407 | |
| 408 | if err := Run(query); err != nil { |
| 409 | return "" |
| 410 | } |
| 411 | |
| 412 | go func() { |
| 413 | var buf bytes.Buffer |
| 414 | io.Copy(&buf, r) |
| 415 | ch <- buf.String() |
| 416 | }() |
| 417 | |
| 418 | w.Close() |
| 419 | os.Stdout = stdout |
| 420 | return <-ch |
| 421 | } |
no test coverage detected