aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/go/doc.go3
-rw-r--r--src/cmd/go/run.go17
2 files changed, 17 insertions, 3 deletions
diff --git a/src/cmd/go/doc.go b/src/cmd/go/doc.go
index 6ffcf9ab6c..3b22e0f04a 100644
--- a/src/cmd/go/doc.go
+++ b/src/cmd/go/doc.go
@@ -367,9 +367,10 @@ Compile and run Go program
Usage:
- go run [build flags] gofiles... [arguments...]
+ go run [build flags] [gofiles...] [arguments...]
Run compiles and runs the main package comprising the named Go source files.
+If no files are named, it compiles and runs all non-test Go source files.
For more about build flags, see 'go help build'.
diff --git a/src/cmd/go/run.go b/src/cmd/go/run.go
index b505693635..d8ba4dbddd 100644
--- a/src/cmd/go/run.go
+++ b/src/cmd/go/run.go
@@ -8,14 +8,16 @@ import (
"fmt"
"os"
"os/exec"
+ "path/filepath"
"strings"
)
var cmdRun = &Command{
- UsageLine: "run [build flags] gofiles... [arguments...]",
+ UsageLine: "run [build flags] [gofiles...] [arguments...]",
Short: "compile and run Go program",
Long: `
Run compiles and runs the main package comprising the named Go source files.
+If no files are named, it compiles and runs all non-test Go source files.
For more about build flags, see 'go help build'.
@@ -44,7 +46,18 @@ func runRun(cmd *Command, args []string) {
}
files, cmdArgs := args[:i], args[i:]
if len(files) == 0 {
- fatalf("go run: no go files listed")
+ allFiles, err := filepath.Glob("*.go")
+ if err != nil {
+ fatalf("go run: %s", err)
+ }
+ for _, file := range allFiles {
+ if !strings.HasSuffix(file, "_test.go") {
+ files = append(files, file)
+ }
+ }
+ if len(files) == 0 {
+ fatalf("go run: no go files found")
+ }
}
for _, file := range files {
if strings.HasSuffix(file, "_test.go") {