all: add canonical imports
Created by: kortschak
@btracey Please take a look.
Done with a combination of Go and bash.
package.go
package main
import (
"fmt"
"go/parser"
"go/token"
"os"
"strings"
)
func main() {
fset := token.NewFileSet()
pkgs, err := parser.ParseDir(fset, os.Args[1], nil, parser.ParseComments)
if err != nil {
panic(err)
}
for p, pkg := range pkgs {
if p == "main" {
continue
}
for name, f := range pkg.Files {
if f.Doc != nil {
for _, c := range f.Doc.List {
if strings.Contains(c.Text, "Package "+p) {
fmt.Println(name)
os.Exit(0)
}
}
}
}
}
os.Exit(1)
}
and in GOPATH/src
for d in $(find gonum.org/v1/gonum -not -path '*/\.*' -type d); do
if f=$(go run package.go $d 2>/dev/null); then
sed -i "s|^\(package .*\)$|\1 // import \"$d\"|" $f
fi
done