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.
This commit is contained in:
morganamilo 2018-08-18 20:50:20 +01:00
parent 19bf8e773c
commit 0f324b37a6
No known key found for this signature in database
GPG key ID: 6FE9E7996B0B082E

View file

@ -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