mirror of https://github.com/golang/go.git
cmd/go: invoke godoc with import path when possible
Also add -n -x flags to doc, fmt, vet. Also shorten unknown command error. Fixes #3612. Fixes #3613. R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/6211053
This commit is contained in:
parent
f47346c5fc
commit
0c8f469428
|
|
@ -152,6 +152,11 @@ func addBuildFlags(cmd *Command) {
|
|||
cmd.Flag.Var(buildCompiler{}, "compiler", "")
|
||||
}
|
||||
|
||||
func addBuildFlagsNX(cmd *Command) {
|
||||
cmd.Flag.BoolVar(&buildN, "n", false, "")
|
||||
cmd.Flag.BoolVar(&buildX, "x", false, "")
|
||||
}
|
||||
|
||||
type stringsFlag []string
|
||||
|
||||
func (v *stringsFlag) Set(s string) error {
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ Run godoc on package sources
|
|||
|
||||
Usage:
|
||||
|
||||
go doc [packages]
|
||||
go doc [-n] [-x] [packages]
|
||||
|
||||
Doc runs the godoc command on the packages named by the
|
||||
import paths.
|
||||
|
|
@ -153,6 +153,9 @@ import paths.
|
|||
For more about godoc, see 'godoc godoc'.
|
||||
For more about specifying packages, see 'go help packages'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
To run godoc with specific options, run godoc itself.
|
||||
|
||||
See also: go fix, go fmt, go vet.
|
||||
|
|
@ -192,7 +195,7 @@ Run gofmt on package sources
|
|||
|
||||
Usage:
|
||||
|
||||
go fmt [packages]
|
||||
go fmt [-n] [-x] [packages]
|
||||
|
||||
Fmt runs the command 'gofmt -l -w' on the packages named
|
||||
by the import paths. It prints the names of the files that are modified.
|
||||
|
|
@ -200,6 +203,9 @@ by the import paths. It prints the names of the files that are modified.
|
|||
For more about gofmt, see 'godoc gofmt'.
|
||||
For more about specifying packages, see 'go help packages'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
To run gofmt with specific options, run gofmt itself.
|
||||
|
||||
See also: go doc, go fix, go vet.
|
||||
|
|
@ -414,7 +420,7 @@ Run go tool vet on packages
|
|||
|
||||
Usage:
|
||||
|
||||
go vet [packages]
|
||||
go vet [-n] [-x] [packages]
|
||||
|
||||
Vet runs the Go vet command on the packages named by the import paths.
|
||||
|
||||
|
|
@ -423,6 +429,9 @@ For more about specifying packages, see 'go help packages'.
|
|||
|
||||
To run the vet tool with specific options, run 'go tool vet'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
See also: go fmt, go fix.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,14 @@
|
|||
|
||||
package main
|
||||
|
||||
func init() {
|
||||
addBuildFlagsNX(cmdFmt)
|
||||
addBuildFlagsNX(cmdDoc)
|
||||
}
|
||||
|
||||
var cmdFmt = &Command{
|
||||
Run: runFmt,
|
||||
UsageLine: "fmt [packages]",
|
||||
UsageLine: "fmt [-n] [-x] [packages]",
|
||||
Short: "run gofmt on package sources",
|
||||
Long: `
|
||||
Fmt runs the command 'gofmt -l -w' on the packages named
|
||||
|
|
@ -15,6 +20,9 @@ by the import paths. It prints the names of the files that are modified.
|
|||
For more about gofmt, see 'godoc gofmt'.
|
||||
For more about specifying packages, see 'go help packages'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
To run gofmt with specific options, run gofmt itself.
|
||||
|
||||
See also: go doc, go fix, go vet.
|
||||
|
|
@ -32,7 +40,7 @@ func runFmt(cmd *Command, args []string) {
|
|||
|
||||
var cmdDoc = &Command{
|
||||
Run: runDoc,
|
||||
UsageLine: "doc [packages]",
|
||||
UsageLine: "doc [-n] [-x] [packages]",
|
||||
Short: "run godoc on package sources",
|
||||
Long: `
|
||||
Doc runs the godoc command on the packages named by the
|
||||
|
|
@ -41,6 +49,9 @@ import paths.
|
|||
For more about godoc, see 'godoc godoc'.
|
||||
For more about specifying packages, see 'go help packages'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
To run godoc with specific options, run godoc itself.
|
||||
|
||||
See also: go fix, go fmt, go vet.
|
||||
|
|
@ -53,6 +64,10 @@ func runDoc(cmd *Command, args []string) {
|
|||
errorf("go doc: cannot use package file list")
|
||||
continue
|
||||
}
|
||||
run("godoc", pkg.Dir)
|
||||
if pkg.local {
|
||||
run("godoc", pkg.Dir)
|
||||
} else {
|
||||
run("godoc", pkg.ImportPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,8 +144,9 @@ func main() {
|
|||
}
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stderr, "Unknown command %#q\n\n", args[0])
|
||||
usage()
|
||||
fmt.Fprintf(os.Stderr, "go: unknown subcommand %#q\nRun 'go help' for usage.\n", args[0])
|
||||
setExitStatus(2)
|
||||
exit()
|
||||
}
|
||||
|
||||
var usageTemplate = `Go is a tool for managing Go source code.
|
||||
|
|
@ -339,6 +340,13 @@ func exitIfErrors() {
|
|||
|
||||
func run(cmdargs ...interface{}) {
|
||||
cmdline := stringList(cmdargs...)
|
||||
if buildN || buildV {
|
||||
fmt.Printf("%s\n", strings.Join(cmdline, " "))
|
||||
if buildN {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
cmd := exec.Command(cmdline[0], cmdline[1:]...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
|
|
|
|||
|
|
@ -4,9 +4,13 @@
|
|||
|
||||
package main
|
||||
|
||||
func init() {
|
||||
addBuildFlagsNX(cmdVet)
|
||||
}
|
||||
|
||||
var cmdVet = &Command{
|
||||
Run: runVet,
|
||||
UsageLine: "vet [packages]",
|
||||
UsageLine: "vet [-n] [-x] [packages]",
|
||||
Short: "run go tool vet on packages",
|
||||
Long: `
|
||||
Vet runs the Go vet command on the packages named by the import paths.
|
||||
|
|
@ -16,6 +20,9 @@ For more about specifying packages, see 'go help packages'.
|
|||
|
||||
To run the vet tool with specific options, run 'go tool vet'.
|
||||
|
||||
The -n flag prints commands that would be executed.
|
||||
The -x flag prints commands as they are executed.
|
||||
|
||||
See also: go fmt, go fix.
|
||||
`,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue