From ef7e8acb13ce5dffef8641fc69c95e9b1ff0087e Mon Sep 17 00:00:00 2001 From: morganamilo Date: Mon, 7 May 2018 23:01:39 +0100 Subject: [PATCH] Refactor complex map types into their own type map[string][]string -> mapStringSlice mao[string]stringSet -> mapStringSet --- conflicts.go | 36 ++++++++++++++++++------------------ dependencies.go | 12 ++++++------ query.go | 4 ++-- utils.go | 19 +++++++++++-------- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/conflicts.go b/conflicts.go index 759de489..d12057a8 100644 --- a/conflicts.go +++ b/conflicts.go @@ -11,7 +11,7 @@ import ( // Checks a single conflict against every other to be installed package's // name and its provides. -func checkInnerConflict(name string, conflict string, conflicts map[string]stringSet, dc *depCatagories) { +func checkInnerConflict(name string, conflict string, conflicts mapStringSet, dc *depCatagories) { deps, err := gopkg.ParseDeps([]string{conflict}) if err != nil { return @@ -28,7 +28,7 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin return } if dep.Name == pkg.Name && version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name) + conflicts.Add(name, pkg.Name) continue } @@ -57,7 +57,7 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin } if version != nil && version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name) + conflicts.Add(name, pkg.Name) break } @@ -75,7 +75,7 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin } if dep.Name == pkg.Name() && version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name()) + conflicts.Add(name, pkg.Name()) continue } @@ -92,7 +92,7 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin } if provide.Mod == alpm.DepModAny { - addMapStringSet(conflicts, name, pkg.Name()) + conflicts.Add(name, pkg.Name()) return fmt.Errorf("") } @@ -102,7 +102,7 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin } if version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name()) + conflicts.Add(name, pkg.Name()) return fmt.Errorf("") } @@ -113,8 +113,8 @@ func checkInnerConflict(name string, conflict string, conflicts map[string]strin // Checks every to be installed package's conflicts against every other to be // installed package and its provides. -func checkForInnerConflicts(dc *depCatagories) map[string]stringSet { - conflicts := make(map[string]stringSet) +func checkForInnerConflicts(dc *depCatagories) mapStringSet { + conflicts := make(mapStringSet) for _, pkg := range dc.Aur { for _, cpkg := range pkg.Conflicts { @@ -134,7 +134,7 @@ func checkForInnerConflicts(dc *depCatagories) map[string]stringSet { // Checks a provide or packagename from a to be installed package // against every already installed package's conflicts -func checkReverseConflict(name string, provide string, conflicts map[string]stringSet) error { +func checkReverseConflict(name string, provide string, conflicts mapStringSet) error { var version *gopkg.CompleteVersion var err error @@ -176,7 +176,7 @@ func checkReverseConflict(name string, provide string, conflicts map[string]stri if version == nil || version.Satisfies(dep) { // Todo - addMapStringSet(conflicts, name, pkg.Name()+" ("+provide+")") + conflicts.Add(name, pkg.Name()+" ("+provide+")") return fmt.Errorf("") } @@ -191,7 +191,7 @@ func checkReverseConflict(name string, provide string, conflicts map[string]stri // Checks the conflict of a to be installed package against the package name and // provides of every installed package. -func checkConflict(name string, conflict string, conflicts map[string]stringSet) error { +func checkConflict(name string, conflict string, conflicts mapStringSet) error { localDb, err := alpmHandle.LocalDb() if err != nil { return err @@ -215,7 +215,7 @@ func checkConflict(name string, conflict string, conflicts map[string]stringSet) } if dep.Name == pkg.Name() && version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name()) + conflicts.Add(name, pkg.Name()) return nil } @@ -232,7 +232,7 @@ func checkConflict(name string, conflict string, conflicts map[string]stringSet) } if provide.Mod == alpm.DepModAny { - addMapStringSet(conflicts, name, pkg.Name()+" ("+provide.Name+")") + conflicts.Add(name, pkg.Name()+" ("+provide.Name+")") return fmt.Errorf("") } @@ -242,7 +242,7 @@ func checkConflict(name string, conflict string, conflicts map[string]stringSet) } if version.Satisfies(dep) { - addMapStringSet(conflicts, name, pkg.Name()+" ("+provide.Name+")") + conflicts.Add(name, pkg.Name()+" ("+provide.Name+")") return fmt.Errorf("") } @@ -258,8 +258,8 @@ func checkConflict(name string, conflict string, conflicts map[string]stringSet) // Checks every to be installed package's conflicts against the names and // provides of every already installed package and checks every to be installed // package's name and provides against every already installed package. -func checkForConflicts(dc *depCatagories) (map[string]stringSet, error) { - conflicts := make(map[string]stringSet) +func checkForConflicts(dc *depCatagories) (mapStringSet, error) { + conflicts := make(mapStringSet) for _, pkg := range dc.Aur { for _, cpkg := range pkg.Conflicts { @@ -296,8 +296,8 @@ func checkForConflicts(dc *depCatagories) (map[string]stringSet, error) { // does some printing. func checkForAllConflicts(dc *depCatagories) error { var err error - var conflicts map[string]stringSet - var innerConflicts map[string]stringSet + var conflicts mapStringSet + var innerConflicts mapStringSet var wg sync.WaitGroup wg.Add(2) diff --git a/dependencies.go b/dependencies.go index 31bc0e07..666e6778 100644 --- a/dependencies.go +++ b/dependencies.go @@ -548,7 +548,7 @@ func depTreeRecursive(dt *depTree, localDb *alpm.Db, syncDb alpm.DbList, isMake } func checkVersions(dt *depTree) error { - has := make(map[string][]string) + has := make(mapStringSlice) allDeps := make([]*gopkg.Dependency, 0) localDb, err := alpmHandle.LocalDb() @@ -569,13 +569,13 @@ func checkVersions(dt *depTree) error { } } - addMapStringSlice(has, pkg.Name, pkg.Version) + has.Add(pkg.Name, pkg.Version) if !isDevelName(pkg.Name) { for _, name := range pkg.Provides { _name, _ver := splitNameFromDep(name) if _ver != "" { - addMapStringSlice(has, _name, _ver) + has.Add(_name, _ver) } else { delete(has, _name) } @@ -594,11 +594,11 @@ func checkVersions(dt *depTree) error { return nil }) - addMapStringSlice(has, pkg.Name(), pkg.Version()) + has.Add(pkg.Name(), pkg.Version()) pkg.Provides().ForEach(func(dep alpm.Depend) error { if dep.Mod != alpm.DepModAny { - addMapStringSlice(has, dep.Name, dep.Version) + has.Add(dep.Name, dep.Version) } else { delete(has, dep.Name) } @@ -611,7 +611,7 @@ func checkVersions(dt *depTree) error { localDb.PkgCache().ForEach(func(pkg alpm.Package) error { pkg.Provides().ForEach(func(dep alpm.Depend) error { if dep.Mod != alpm.DepModAny { - addMapStringSlice(has, dep.Name, dep.Version) + has.Add(dep.Name, dep.Version) } else { delete(has, dep.Name) } diff --git a/query.go b/query.go index 3eb22f69..8e4c0a45 100644 --- a/query.go +++ b/query.go @@ -332,7 +332,7 @@ func hangingPackages(removeOptional bool) (hanging []string, err error) { // State = 2 - Keep package and have iterated over dependencies safePackages := make(map[string]uint8) // provides stores a mapping from the provides name back to the original package name - provides := make(map[string]stringSet) + provides := make(mapStringSet) packages := localDb.PkgCache() // Mark explicit dependencies and enumerate the provides list @@ -344,7 +344,7 @@ func hangingPackages(removeOptional bool) (hanging []string, err error) { } pkg.Provides().ForEach(func(dep alpm.Depend) error { - addMapStringSet(provides, dep.Name, pkg.Name()) + provides.Add(dep.Name, pkg.Name()) return nil }) return nil diff --git a/utils.go b/utils.go index be9f0449..2439981f 100644 --- a/utils.go +++ b/utils.go @@ -7,6 +7,9 @@ import ( "unicode" ) +type mapStringSlice map[string][]string +type mapStringSet map[string]stringSet + type intRange struct { min int max int @@ -49,20 +52,20 @@ func max(a, b int) int { return a } -func addMapStringSet(h map[string]stringSet, n string, v string) { - _, ok := h[n] +func (mss mapStringSet) Add(n string, v string) { + _, ok := mss[n] if !ok { - h[n] = make(stringSet) + mss[n] = make(stringSet) } - h[n].set(v) + mss[n].set(v) } -func addMapStringSlice(h map[string][]string, n string, v string) { - _, ok := h[n] +func (mss mapStringSlice) Add(n string, v string) { + _, ok := mss[n] if !ok { - h[n] = make([]string, 0, 1) + mss[n] = make([]string, 0, 1) } - h[n] = append(h[n], v) + mss[n] = append(mss[n], v) } func completeFileName(dir, name string) (string, error) {