First, we can use flag.Args instead of flag.NArg and flag.Arg. Second, just call filepath.WalkDir directly on each argument. We don't need to check if each argument is a directory or not, since the function will still work on regular files as expected. To continue giving an error in the "gofmt does-not-exist.go" case, we now need to return and handle errors from filepath.WalkDir, too. Arguably, that should have always been the case. While at it, I noticed that the printinf of the "diff" command did not obey the "out" parameter. Fix that. Finally, remove the code to ignore IsNotExist errors. It was added in CL 19301, though it didn't include tests and its reasoning is dubious. Using gofmt on a directory treewhile another program is concurrently editing or removing files is inherently racy. Hiding errors can hide valid problems from the user, and such racy usages aren't supported. Change-Id: I2e74cc04c53eeefb25231d804752b53562b97371 Reviewed-on: https://go-review.googlesource.com/c/go/+/284138 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> Trust: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Go Bot <gobot@golang.org> |
||
|---|---|---|
| .github | ||
| api | ||
| doc | ||
| lib/time | ||
| misc | ||
| src | ||
| test | ||
| .gitattributes | ||
| .gitignore | ||
| AUTHORS | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS | ||
| LICENSE | ||
| PATENTS | ||
| README.md | ||
| SECURITY.md | ||
| codereview.cfg | ||
README.md
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Download and Install
Binary Distributions
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install for installation instructions.
Install From Source
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source for source installation instructions.
Contributing
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://golang.org/doc/contribute.html.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.