blob: d034093d31dd2e0bbb67078d5070e45cdb36077f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package exercises
import (
"bytes"
"fmt"
"os/exec"
)
type Result struct {
Exercise Exercise
Out string
Err string
}
func Run(name string) (Result, error) {
exercise, err := Find(name)
if err != nil {
return Result{}, err
}
cmd := exec.Command("go", "run", fmt.Sprintf("./%s", exercise.Path))
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err = cmd.Run()
return Result{Exercise: exercise, Out: stdout.String(), Err: stderr.String()}, err
}
|