summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-11-21 09:33:55 +0800
committerEltrac <hi@guhub.cn>2025-11-21 09:33:55 +0800
commit963b66e9e7047a188cc31319212d21a78cff49b0 (patch)
treeb055fb9cac78f4a07018e1e9d5c93efa77d5a0ca
parent1770b8369467ca3f698bd948c634d11d4594240e (diff)
perf: concurrently get brew info and reverse dependencies
-rw-r--r--main.go14
-rw-r--r--statistics.go4
2 files changed, 14 insertions, 4 deletions
diff --git a/main.go b/main.go
index d7ada82..fb72972 100644
--- a/main.go
+++ b/main.go
@@ -25,8 +25,18 @@ func main() {
// prompt
showLoadingPrompt(fmt.Sprintf("What the heck is \"%s\"", pkgName))
// search, tidy up, and print
- formula, cask := GetBrewInfo(pkgName)
- stat := NewStatistics(formula, cask, pkgName)
+ fmlChan := make(chan *FormulaInfo)
+ caskChan := make(chan *CaskInfo)
+ rvsChan := make(chan []string)
+ go func() {
+ formula, cask := GetBrewInfo(pkgName)
+ fmlChan <- formula
+ caskChan <- cask
+ }()
+ go func() {
+ rvsChan <- GetBrewUses(pkgName)
+ }()
+ stat := NewStatistics(<-fmlChan, <-caskChan, pkgName,<-rvsChan)
hideLoadingPrompt()
stat.Print()
return nil
diff --git a/statistics.go b/statistics.go
index 46e89c1..17a01d9 100644
--- a/statistics.go
+++ b/statistics.go
@@ -26,7 +26,7 @@ type statistics struct {
ReverseDependencies []string
}
-func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string) *statistics {
+func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string, rvs []string) *statistics {
var statObject statistics
// === formula/cask specific === //
@@ -47,7 +47,7 @@ func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string) *statis
}
// get reverse dependencies
- statObject.ReverseDependencies = GetBrewUses(pkgName)
+ statObject.ReverseDependencies = rvs
} else if cask != nil {
statObject.Name = cask.Token
statObject.Type = "cask"