From 878608bd29b936b889e130b0bb81cfbc523ae233 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 8 Feb 2012 16:30:28 +1100 Subject: [PATCH] cmd/go: connect os.Stdin for go run Fixes #2875 R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/5641052 --- src/cmd/go/run.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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) + } +} -- 2.50.0