diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/go/doc.go | 3 | ||||
| -rw-r--r-- | src/cmd/go/run.go | 17 |
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") { |
