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.
()
| 63 | // dependencies generated for the UI js files, and compiles the list of |
| 64 | // js files from the closure lib required for the UI. |
| 65 | func 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)) |
no test coverage detected