From: Brad Fitzpatrick Date: Wed, 8 Feb 2012 05:30:28 +0000 (+1100) Subject: cmd/go: connect os.Stdin for go run X-Git-Tag: weekly.2012-02-14~225 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=878608bd29b936b889e130b0bb81cfbc523ae233;p=gostls13.git cmd/go: connect os.Stdin for go run Fixes #2875 R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/5641052 --- diff --git a/src/cmd/go/run.go b/src/cmd/go/run.go index 9d2c526fb9..f317620e72 100644 --- a/src/cmd/go/run.go +++ b/src/cmd/go/run.go @@ -7,6 +7,7 @@ package main import ( "fmt" "os" + "os/exec" "strings" ) @@ -61,6 +62,19 @@ func (b *builder) runProgram(a *action) error { return nil } } - run(a.deps[0].target, a.args) + + runStdin(a.deps[0].target, a.args) return nil } + +// runStdin is like run, but connects Stdin. +func runStdin(cmdargs ...interface{}) { + cmdline := stringList(cmdargs...) + cmd := exec.Command(cmdline[0], cmdline[1:]...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + errorf("%v", err) + } +}