/
main.go
54 lines (46 loc) · 1.04 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"flag"
"fmt"
"strings"
)
func main() {
IgnoreInit()
ShortenInit()
ColorerInit()
flag.Parse()
dep := GetRecursiveDependencies(GetPath())
// dep = RemoveMissingImport(dep)
dep = OuterPackageGrouper(dep, GetPkg())
dep = GroupStdlibDependency(dep)
dep = OuterPackageAdder(dep, GetPkg())
dep = AddColor(dep)
result := PrintForDAG(dep)
result = Shorten(result)
ShowInDagBrowser(result)
}
func RemoveMissingImport(dependencies map[string][]string) map[string][]string {
for k, v := range dependencies {
lenv := len(v)
newImport := make([]string, lenv, lenv)
index := 0
for _, i := range v {
_, ok := dependencies[i]
if ok {
newImport[index] = i
index += 1
}
}
dependencies[k] = newImport
}
return dependencies
}
func PrintForDAG(dependencies map[string][]string) string {
result := ""
for k, v := range dependencies {
importList := strings.Join(v, " ")
importList = strings.Replace(importList, "\"", "", -1)
result = result + fmt.Sprintf("%s %s\n", k, importList)
}
return result
}