diff options
| author | Eltrac <hi@guhub.cn> | 2025-11-23 11:47:31 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-11-23 11:47:31 +0800 |
| commit | b91f014bed782af5b7e0408651c076779ce4eb3e (patch) | |
| tree | f51536eddf5295d16b6d52ef4529dd1ee9605e19 | |
| parent | f8549409b83c5a7d405d4dfb4902b9598698fd23 (diff) | |
refactor: clearer entry point code
| -rw-r--r-- | main.go | 35 |
1 files changed, 20 insertions, 15 deletions
@@ -41,13 +41,22 @@ func main() { os.Exit(0) } - // check args + // handle arguments if cmd.Args().Len() == 0 { printErrorAndExit("Please provide a formulae/cask name.") } + pkgName := cmd.Args().First() - // do the job - searchAndPrint(cmd.Args().First()) + // search and print + showLoadingPrompt(fmt.Sprintf("What the heck is \"%s\"", pkgName)) + stat := fetchToCreateStatistics(pkgName) + hideLoadingPrompt() + stat.Print() + + // cache + if !NoCache { + stat.Cache() + } return nil }, @@ -59,13 +68,14 @@ func main() { } } -func searchAndPrint(pkgName string) { - // prompt - showLoadingPrompt(fmt.Sprintf("What the heck is \"%s\"", pkgName)) +func fetchToCreateStatistics(pkgName string) *statistics { // try reading from cache - var stat *statistics = NewStatisticsFromCache(pkgName) + var stat *statistics + if !NoCache { + stat = NewStatisticsFromCache(pkgName) + } + // if cache not hit or explicitly requested no cache if NoCache || stat == nil { - // cache not hit, then search fmlChan := make(chan *FormulaInfo) caskChan := make(chan *CaskInfo) rvsChan := make(chan []string) @@ -78,15 +88,10 @@ func searchAndPrint(pkgName string) { go func() { rvsChan <- GetBrewUses(pkgName) }() + // create fine-grained data out of raw stat = NewStatistics(<-fmlChan, <-caskChan, pkgName, <-rvsChan) - // handle caching - if !NoCache { - stat.Cache() - } } - // print - hideLoadingPrompt() - stat.Print() + return stat } func printErrorAndExit(msg string) { |
