diff --git a/clean.go b/clean.go index eb3faa74..d68000b5 100644 --- a/clean.go +++ b/clean.go @@ -187,9 +187,8 @@ func cleanUntracked() error { } dir := filepath.Join(config.BuildDir, file.Name()) - if shouldUseGit(dir) { - if err = show(passToGit(dir, "clean", "-fx")); err != nil { + if err := show(passToGit(dir, "clean", "-fx")); err != nil { return err } } @@ -197,3 +196,36 @@ func cleanUntracked() error { return nil } + +func cleanAfter(bases []Base) { + fmt.Println("removing Untracked AUR files from cache...") + + for i, base := range bases { + dir := filepath.Join(config.BuildDir, base.Pkgbase()) + + if shouldUseGit(dir) { + fmt.Printf(bold(cyan("::")+" Cleaning (%d/%d): %s\n"), i+1, len(bases), cyan(dir)) + _, stderr, err := capture(passToGit(dir, "reset", "--hard", "HEAD")) + if err != nil { + fmt.Printf("error resetting %s: %s", base.String(), stderr) + } + + show(passToGit(dir, "clean", "-fx")) + } else { + fmt.Printf(bold(cyan("::")+" Deleting (%d/%d): %s\n"), i+1, len(bases), cyan(dir)) + if err := os.RemoveAll(dir); err != nil { + fmt.Println(err) + } + } + } +} + +func cleanBuilds(bases []Base) { + for i, base := range bases { + dir := filepath.Join(config.BuildDir, base.Pkgbase()) + fmt.Printf(bold(cyan("::")+" Deleting (%d/%d): %s\n"), i+1, len(bases), cyan(dir)) + if err := os.RemoveAll(dir); err != nil { + fmt.Println(err) + } + } +} diff --git a/install.go b/install.go index 623b0ecb..06d54b82 100644 --- a/install.go +++ b/install.go @@ -341,7 +341,7 @@ func install(parser *arguments) error { } if config.CleanAfter { - cleanBuilds(do.Aur) + cleanAfter(do.Aur) } return nil @@ -680,14 +680,6 @@ func editDiffNumberMenu(bases []Base, installed stringSet, diff bool) ([]Base, e return toEdit, nil } -func cleanBuilds(bases []Base) { - for i, base := range bases { - dir := filepath.Join(config.BuildDir, base.Pkgbase()) - fmt.Printf(bold(cyan("::")+" Deleting (%d/%d): %s\n"), i+1, len(bases), cyan(dir)) - os.RemoveAll(dir) - } -} - func showPkgbuildDiffs(bases []Base, cloned stringSet) error { for _, base := range bases { pkg := base.Pkgbase()