]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: connect os.Stdin for go run
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 8 Feb 2012 05:30:28 +0000 (16:30 +1100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 8 Feb 2012 05:30:28 +0000 (16:30 +1100)
Fixes #2875

R=golang-dev, r, rsc
CC=golang-dev
https://golang.org/cl/5641052

src/cmd/go/run.go

index 9d2c526fb9d170bd5ee682775f7c86259a3ab504..f317620e725a582ae433e2e83b3cbfe47a531903 100644 (file)
@@ -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)
+       }
+}