package gomod import ( "os" "git.yetaga.in/deltamualpha/libyear/pkg/libyear" "golang.org/x/mod/modfile" ) func LoadAndComputePairs(filename string) ([]libyear.Pair, error) { b, err := os.ReadFile(filename) if err != nil { return nil, err } f, err := modfile.Parse(filename, b, nil) if err != nil { return nil, err } q := Queryer{} pairs := []libyear.Pair{} for v := range f.Require { if f.Require[v].Mod.Path != "" && f.Require[v].Mod.Version != "" { latest := q.GetLatestVersion(f.Require[v].Mod.Path) current := q.GetVersion(f.Require[v].Mod.Path, f.Require[v].Mod.Version) pairs = append(pairs, libyear.Pair{ Name: f.Require[v].Mod.Path, Current: current, Latest: latest, }) } } return pairs, nil }