(versionExtraAllowList []string)
| 178 | } |
| 179 | |
| 180 | func newRepoData(versionExtraAllowList []string) (helper.RepoData, error) { |
| 181 | cwd, err := os.Getwd() |
| 182 | if err != nil { |
| 183 | return helper.RepoData{}, err |
| 184 | } |
| 185 | root := os.DirFS(cwd) |
| 186 | modules := helper.RepoData{} |
| 187 | err = fs.WalkDir(root, ".", func(path string, d fs.DirEntry, err error) error { |
| 188 | if err != nil { |
| 189 | return err |
| 190 | } |
| 191 | if d.IsDir() && d.Type()&fs.ModeSymlink != 0 { |
| 192 | return fs.SkipDir |
| 193 | } |
| 194 | if !d.IsDir() { |
| 195 | return nil |
| 196 | } |
| 197 | mod := path |
| 198 | if _, err := os.Stat(filepath.Join(mod, "go.mod")); err != nil { |
| 199 | return nil |
| 200 | } |
| 201 | latest, err := getLatestVersion(mod) |
| 202 | if err != nil { |
| 203 | return err |
| 204 | } |
| 205 | deps, err := getDirectProjectDependencies(mod) |
| 206 | if err != nil { |
| 207 | return err |
| 208 | } |
| 209 | modules.AddMod(mod, helper.Version{Current: latest, KeepExtra: slices.Contains(versionExtraAllowList, mod)}, deps) |
| 210 | return nil |
| 211 | }) |
| 212 | return modules, err |
| 213 | } |
| 214 | |
| 215 | func getDirectProjectDependencies(mod string) ([]string, error) { |
| 216 | modPath := filepath.Join(mod, "go.mod") |
no test coverage detected