mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-24 09:48:49 +02:00
refactor(idlewatcher): replace map with ordered.Map for deduplicating dependencies
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
|
"github.com/yusing/ds/ordered"
|
||||||
"github.com/yusing/go-proxy/internal/docker"
|
"github.com/yusing/go-proxy/internal/docker"
|
||||||
"github.com/yusing/go-proxy/internal/gperr"
|
"github.com/yusing/go-proxy/internal/gperr"
|
||||||
"github.com/yusing/go-proxy/internal/idlewatcher/provider"
|
"github.com/yusing/go-proxy/internal/idlewatcher/provider"
|
||||||
@@ -545,13 +546,13 @@ func (w *Watcher) dedupDependencies() {
|
|||||||
deps := w.dependencies()
|
deps := w.dependencies()
|
||||||
for _, dep := range w.dependsOn {
|
for _, dep := range w.dependsOn {
|
||||||
depdeps := dep.dependencies()
|
depdeps := dep.dependencies()
|
||||||
for depdep := range depdeps {
|
for depdep := range depdeps.Iter {
|
||||||
delete(deps, depdep)
|
deps.Del(depdep)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newDepOn := make([]string, 0, len(deps))
|
newDepOn := make([]string, 0, deps.Len())
|
||||||
newDeps := make([]*dependency, 0, len(deps))
|
newDeps := make([]*dependency, 0, deps.Len())
|
||||||
for _, dep := range deps {
|
for _, dep := range deps.Iter {
|
||||||
newDepOn = append(newDepOn, dep.cfg.ContainerName())
|
newDepOn = append(newDepOn, dep.cfg.ContainerName())
|
||||||
newDeps = append(newDeps, dep)
|
newDeps = append(newDeps, dep)
|
||||||
}
|
}
|
||||||
@@ -559,11 +560,13 @@ func (w *Watcher) dedupDependencies() {
|
|||||||
w.dependsOn = newDeps
|
w.dependsOn = newDeps
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *Watcher) dependencies() map[string]*dependency {
|
func (w *Watcher) dependencies() *ordered.Map[string, *dependency] {
|
||||||
deps := make(map[string]*dependency)
|
deps := ordered.NewMap[string, *dependency]()
|
||||||
for _, dep := range w.dependsOn {
|
for _, dep := range w.dependsOn {
|
||||||
deps[dep.Key()] = dep
|
deps.Set(dep.Key(), dep)
|
||||||
maps.Copy(deps, dep.dependencies())
|
for _, depdep := range dep.dependencies().Iter {
|
||||||
|
deps.Set(depdep.Key(), depdep)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return deps
|
return deps
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user