@@ -21,6 +21,7 @@ import (
2121 "strings"
2222
2323 "github.com/pkg/browser"
24+ "github.com/y0ssar1an/q"
2425)
2526
2627var (
3132)
3233
3334func findImport (p string , rootp string ) {
35+ q .Q (p ) // DEBUG
36+ // Custom vanity url replacing for k8s
37+ rep := strings .NewReplacer ("k8s.io" , "github.com/kubernetes" )
38+ repP := rep .Replace (p )
39+ if repP != p {
40+ q .Q (repP ) // DEBUG
41+ p = repP
42+ }
43+
3444 if ! pkgmatch .MatchString (p ) {
3545 // doesn't match the filter, skip it
46+ q .Q ("returning..." ) // DEBUG
3647 return
3748 }
3849 if p == "C" {
@@ -41,15 +52,27 @@ func findImport(p string, rootp string) {
4152 }
4253 if _ , ok := pkgs [p ]; ok {
4354 // seen this package before, skip it
55+ q .Q ("seen before..." ) // DEBUG
4456 return
4557 }
4658 if strings .HasPrefix (p , "golang_org" ) {
59+ q .Q ("has prefix golang_org?? looking in vendor" ) // DEBUG
4760 p = path .Join ("vendor" , p )
4861 }
4962
5063 pkg , err := build .Import (p , rootp , 0 )
51- if err != nil {
64+ q .Q (pkg , err ) // DEBUG
65+ switch {
66+ case err != nil && strings .Contains (err .Error (), "cannot find package" ):
67+ // let pkg terminate...
68+ case err != nil :
5269 log .Fatal (err )
70+ default :
71+ }
72+
73+ // schnake custom
74+ for i := range pkg .Imports {
75+ pkg .Imports [i ] = rep .Replace (pkg .Imports [i ])
5376 }
5477 pkgs [p ] = filter (pkg .Imports )
5578 for _ , pkg := range pkgs [p ] {
@@ -102,23 +125,33 @@ func check(err error) {
102125}
103126
104127func main () {
105- var rootPkg * build.Package
128+ var rootPkg * build.Package
106129 var e error
107130 for _ , pkg := range flag .Args () {
131+ // Custom vanity url replacing for k8s
132+ rep := strings .NewReplacer ("k8s.io" , "github.com/kubernetes" )
133+ repP := rep .Replace (pkg )
134+ if repP != pkg {
135+ q .Q (repP ) // DEBUG
136+ pkg = repP
137+ }
138+
108139 rootPkg , e = build .Import (pkg , "" , 0 )
109140 if e != nil {
110141 log .Fatal (e )
111142 }
112143 findImport (pkg , rootPkg .Dir )
113144 }
114- cmd := exec .Command ("dot " , "-Tsvg" )
145+ cmd := exec .Command ("neato " , "-Tsvg" )
115146 in , err := cmd .StdinPipe ()
116147 check (err )
117148 out , err := cmd .StdoutPipe ()
118149 cmd .Stderr = os .Stderr
119150 check (cmd .Start ())
120151
121152 fmt .Fprintf (in , "digraph {\n " )
153+ // schnake test for neato overlap fix
154+ fmt .Fprintf (in , "overlap = false;\n " )
122155 keys := keys ()
123156 for p , i := range keys {
124157 fmt .Fprintf (in , "\t N%d [label=%q,shape=box];\n " , i , p )
0 commit comments