From 0f324b37a66ff595b847c93f69085df1fce4004b Mon Sep 17 00:00:00 2001 From: morganamilo Date: Sat, 18 Aug 2018 20:50:20 +0100 Subject: [PATCH] Only print the clean number menu when needed The input is only asked when needed, but the numbered package list was still printed either way. This fixes it so the list is not shown unless needed. --- install.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/install.go b/install.go index 42063d06..c9e36b7a 100644 --- a/install.go +++ b/install.go @@ -175,13 +175,15 @@ func install(parser *arguments) error { } if config.CleanMenu { - askClean := pkgbuildNumberMenu(do.Aur, remoteNamesCache) - toClean, err := cleanNumberMenu(do.Aur, remoteNamesCache, askClean) - if err != nil { - return err - } + if anyExistInCache(do.Aur) { + askClean := pkgbuildNumberMenu(do.Aur, remoteNamesCache) + toClean, err := cleanNumberMenu(do.Aur, remoteNamesCache, askClean) + if err != nil { + return err + } - cleanBuilds(toClean) + cleanBuilds(toClean) + } } toSkip := pkgbuildsToSkip(do.Aur, targets) @@ -485,6 +487,19 @@ func parsePackageList(dir string) (map[string]string, string, error) { return pkgdests, version, nil } +func anyExistInCache(bases []Base) bool { + for _, base := range bases { + pkg := base.Pkgbase() + dir := filepath.Join(config.BuildDir, pkg) + + if _, err := os.Stat(dir); !os.IsNotExist(err) { + return true + } + } + + return false +} + func pkgbuildNumberMenu(bases []Base, installed stringSet) bool { toPrint := "" askClean := false