mirror of
https://github.com/golang/go
synced 2024-11-20 03:04:40 -07:00
cmd/go: use relative paths in go fix, go fmt, go vet output
Fixes #2686. R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/5528089
This commit is contained in:
parent
4505ae3863
commit
c2ffd9d0c2
@ -794,8 +794,13 @@ func (b *builder) showcmd(dir string, format string, args ...interface{}) {
|
||||
// showOutput also replaces references to the work directory with $WORK.
|
||||
//
|
||||
func (b *builder) showOutput(dir, desc, out string) {
|
||||
prefix := "# " + desc + "\n"
|
||||
suffix := relPaths(dir, out)
|
||||
prefix := "# " + desc
|
||||
suffix := "\n" + out
|
||||
pwd, _ := os.Getwd()
|
||||
if reldir, err := filepath.Rel(pwd, dir); err == nil && len(reldir) < len(dir) {
|
||||
suffix = strings.Replace(suffix, " "+dir, " "+reldir, -1)
|
||||
suffix = strings.Replace(suffix, "\n"+dir, "\n"+reldir, -1)
|
||||
}
|
||||
suffix = strings.Replace(suffix, " "+b.work, " $WORK", -1)
|
||||
|
||||
b.output.Lock()
|
||||
@ -803,16 +808,19 @@ func (b *builder) showOutput(dir, desc, out string) {
|
||||
fmt.Print(prefix, suffix)
|
||||
}
|
||||
|
||||
// relPaths returns a copy of out with references to dir
|
||||
// made relative to the current directory if that would be shorter.
|
||||
func relPaths(dir, out string) string {
|
||||
x := "\n" + out
|
||||
// relPaths returns a copy of paths with absolute paths
|
||||
// made relative to the current directory if they would be shorter.
|
||||
func relPaths(paths []string) []string {
|
||||
var out []string
|
||||
pwd, _ := os.Getwd()
|
||||
if reldir, err := filepath.Rel(pwd, dir); err == nil && len(reldir) < len(dir) {
|
||||
x = strings.Replace(x, " "+dir, " "+reldir, -1)
|
||||
x = strings.Replace(x, "\n"+dir, "\n"+reldir, -1)
|
||||
for _, p := range paths {
|
||||
rel, err := filepath.Rel(pwd, p)
|
||||
if err == nil && len(rel) < len(p) {
|
||||
p = rel
|
||||
}
|
||||
out = append(out, p)
|
||||
}
|
||||
return x[1:]
|
||||
return out
|
||||
}
|
||||
|
||||
// errPrintedOutput is a special error indicating that a command failed
|
||||
|
@ -25,6 +25,6 @@ func runFix(cmd *Command, args []string) {
|
||||
// Use pkg.gofiles instead of pkg.Dir so that
|
||||
// the command only applies to this package,
|
||||
// not to packages in subdirectories.
|
||||
run(stringList("gofix", pkg.gofiles))
|
||||
run(stringList("gofix", relPaths(pkg.gofiles)))
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ func runFmt(cmd *Command, args []string) {
|
||||
// Use pkg.gofiles instead of pkg.Dir so that
|
||||
// the command only applies to this package,
|
||||
// not to packages in subdirectories.
|
||||
run(stringList("gofmt", "-I", "w", pkg.gofiles))
|
||||
run(stringList("gofmt", "-l", "-w", relPaths(pkg.gofiles)))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,6 @@ func runVet(cmd *Command, args []string) {
|
||||
// Use pkg.gofiles instead of pkg.Dir so that
|
||||
// the command only applies to this package,
|
||||
// not to packages in subdirectories.
|
||||
run("govet", pkg.gofiles)
|
||||
run("govet", relPaths(pkg.gofiles))
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user