sandbox: rewrite source file name to prog.go This is in keeping with what the original sandbox server did. Change-Id: I6b26b820c3a480c6d3bf7a5f6b3cade03beb487a Reviewed-on: https://go-review.googlesource.com/3502 Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/sandbox/sandbox.go b/sandbox/sandbox.go index c78c758..037c97d 100644 --- a/sandbox/sandbox.go +++ b/sandbox/sandbox.go
@@ -78,8 +78,17 @@ cmd.Env = []string{"GOOS=nacl", "GOARCH=amd64p32", "GOPATH=" + os.Getenv("GOPATH")} if out, err := cmd.CombinedOutput(); err != nil { if _, ok := err.(*exec.ExitError); ok { - // Build error. - return &Response{Errors: string(out)}, nil + // Return compile errors to the user. + + // Rewrite compiler errors to refer to 'prog.go' + // instead of '/tmp/sandbox1234/main.go'. + errs := strings.Replace(string(out), in, "prog.go", -1) + + // "go build", invoked with a file name, puts this odd + // message before any compile errors; strip it. + errs = strings.Replace(errs, "# command-line-arguments\n", "", 1) + + return &Response{Errors: errs}, nil } return nil, fmt.Errorf("error building go source: %v", err) }