diff options
| author | Eltrac <hi@guhub.cn> | 2026-01-07 17:25:01 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2026-01-07 17:25:01 +0800 |
| commit | 94bf428bc4640d84898ae5ff6a1123df22118aac (patch) | |
| tree | 6831d15b5c7a6d6abbb933b3db5529ab416639ad /main.go | |
| parent | b95c5a4de8da2d036c8ab2f591a62756a52f3642 (diff) | |
| parent | b91f014bed782af5b7e0408651c076779ce4eb3e (diff) | |
Merge branch 'master' of https://github.com/BigCoke233/wtfis
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 40 |
1 files changed, 27 insertions, 13 deletions
@@ -33,10 +33,28 @@ func main() { }, }, Action: func(ctx context.Context, cmd *cli.Command) error { + if DoClearCache { + ClearCache() + fmt.Println("Cache cleared.") + os.Exit(0) + } + + // handle arguments if cmd.Args().Len() == 0 { printErrorAndExit("Please provide a formulae/cask name.") } - searchAndPrint(cmd.Args().First()) + pkgName := 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 }, @@ -135,13 +153,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) @@ -154,15 +173,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) { |
