Jelajahi Sumber

Fix duplicate packages when printing dependencies

e01c4b396992f8505b1087691c13f918ba170ced made some bad assumptions.
Removing the aliases caused packages to not installed when required only
through provides and not their package name. This fixes that by
re enabling the aliases and simply removing duplicates at the end.
morganamilo 7 tahun lalu
induk
melakukan
2fbfbc4de1
1 mengubah file dengan 14 tambahan dan 0 penghapusan
  1. 14 0
      dependencies.go

+ 14 - 0
dependencies.go

@@ -99,6 +99,20 @@ func getDepCatagories(pkgs []string, dt *depTree) (*depCatagories, error) {
 		})
 	}
 
+	dupes := make(map[*alpm.Package]struct{})
+	filteredRepo := make([]*alpm.Package, 0)
+
+	for _, pkg := range dc.Repo {
+		_, ok := dupes[pkg]
+		if ok {
+			continue
+		}
+		dupes[pkg] = struct{}{}
+		filteredRepo = append(filteredRepo, pkg)
+	}
+
+	dc.Repo = filteredRepo
+
 	return dc, nil
 }