MCPcopy
hub / github.com/perkeep/perkeep / fileList

Function fileList

clients/web/embed/closure/updatelibrary.go:65–126  ·  view source on GitHub ↗

fileList parses deps.js from the closure repo, as well as the similar dependencies generated for the UI js files, and compiles the list of js files from the closure lib required for the UI.

()

Source from the content-addressed store, hash-verified

63// dependencies generated for the UI js files, and compiles the list of
64// js files from the closure lib required for the UI.
65func fileList() ([]string, error) {
66 srcRoot, err := osutil.PkSourceRoot()
67 if err != nil {
68 log.Fatalf("source root folder not found: %v", err)
69 }
70 uiDir := filepath.Join(srcRoot, "server", "perkeepd", "ui")
71 closureDepsFile := filepath.Join(closureGitDir, "closure", "goog", "deps.js")
72
73 f, err := os.Open(closureDepsFile)
74 if err != nil {
75 return nil, err
76 }
77 defer f.Close()
78 allClosureDeps, err := closure.DeepParseDeps(f)
79 if err != nil {
80 return nil, err
81 }
82
83 uiDeps, err := closure.GenDeps(http.Dir(uiDir))
84 if err != nil {
85 return nil, err
86 }
87 _, requ, err := closure.ParseDeps(bytes.NewReader(uiDeps))
88 if err != nil {
89 return nil, err
90 }
91
92 nameDone := make(map[string]bool)
93 jsfilesDone := make(map[string]bool)
94 for _, deps := range requ {
95 for _, dep := range deps {
96 if _, ok := nameDone[dep]; ok {
97 continue
98 }
99 jsfiles := allClosureDeps[dep]
100 for _, filename := range jsfiles {
101 if _, ok := jsfilesDone[filename]; ok {
102 continue
103 }
104 jsfilesDone[filename] = true
105 }
106 nameDone[dep] = true
107 }
108 }
109 jsfiles := []string{
110 "AUTHORS",
111 "LICENSE",
112 "README.md",
113 filepath.Join("closure", "goog", "base.js"),
114 filepath.Join("closure", "goog", "bootstrap", "nodejs.js"),
115 filepath.Join("closure", "goog", "bootstrap", "webworkers.js"),
116 filepath.Join("closure", "goog", "css", "common.css"),
117 filepath.Join("closure", "goog", "css", "toolbar.css"),
118 filepath.Join("closure", "goog", "deps.js"),
119 }
120 prefix := filepath.Join("closure", "goog")
121 for k := range jsfilesDone {
122 jsfiles = append(jsfiles, filepath.Join(prefix, k))

Callers 1

resetAndCheckoutFunction · 0.85

Calls 7

PkSourceRootFunction · 0.92
DeepParseDepsFunction · 0.92
GenDepsFunction · 0.92
ParseDepsFunction · 0.92
FatalfMethod · 0.65
OpenMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected