Skip to content

Commit 34ba397

Browse files
committed
Changes to generate image for k8s
- Used PR davecheney#14 to delve into vendor - Added (hack-ily) logic to remove the vanity URLs for k8s.io which prevented build.Import - Used `neato` for the graphic gen based on experimentation - Added an option so neato wouldn't overlap all the labels
1 parent 68b252c commit 34ba397

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

main.go

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"strings"
2222

2323
"github.com/pkg/browser"
24+
"github.com/y0ssar1an/q"
2425
)
2526

2627
var (
@@ -31,8 +32,18 @@ var (
3132
)
3233

3334
func 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

104127
func 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, "\tN%d [label=%q,shape=box];\n", i, p)

0 commit comments

Comments
 (0)