clean.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package workdir
  2. import (
  3. "context"
  4. "github.com/leonelquinteros/gotext"
  5. "github.com/Jguer/yay/v12/pkg/runtime"
  6. "github.com/Jguer/yay/v12/pkg/settings"
  7. "github.com/Jguer/yay/v12/pkg/settings/exe"
  8. "github.com/Jguer/yay/v12/pkg/settings/parser"
  9. "github.com/Jguer/yay/v12/pkg/text"
  10. )
  11. func removeMake(ctx context.Context, config *settings.Configuration,
  12. cmdBuilder exe.ICmdBuilder, makeDeps []string, cmdArgs *parser.Arguments,
  13. ) error {
  14. removeArguments := cmdArgs.CopyGlobal()
  15. err := removeArguments.AddArg("R", "s", "u")
  16. if err != nil {
  17. return err
  18. }
  19. for _, pkg := range makeDeps {
  20. removeArguments.AddTarget(pkg)
  21. }
  22. oldValue := settings.NoConfirm
  23. settings.NoConfirm = true
  24. err = cmdBuilder.Show(cmdBuilder.BuildPacmanCmd(ctx,
  25. removeArguments, config.Mode, settings.NoConfirm))
  26. settings.NoConfirm = oldValue
  27. return err
  28. }
  29. func cleanAfter(ctx context.Context, run *runtime.Runtime,
  30. cmdBuilder exe.ICmdBuilder, pkgbuildDirs map[string]string,
  31. ) {
  32. run.Logger.Println(gotext.Get("removing untracked AUR files from cache..."))
  33. i := 0
  34. for _, dir := range pkgbuildDirs {
  35. run.Logger.OperationInfoln(gotext.Get("Cleaning (%d/%d): %s", i+1, len(pkgbuildDirs), text.Cyan(dir)))
  36. _, stderr, err := cmdBuilder.Capture(
  37. cmdBuilder.BuildGitCmd(
  38. ctx, dir, "reset", "--hard", "HEAD"))
  39. if err != nil {
  40. run.Logger.Errorln(gotext.Get("error resetting %s: %s", dir, stderr))
  41. }
  42. if err := run.CmdBuilder.Show(
  43. run.CmdBuilder.BuildGitCmd(
  44. ctx, dir, "clean", "-fx", "--exclude", "*.pkg.*")); err != nil {
  45. run.Logger.Errorln(err)
  46. }
  47. i++
  48. }
  49. }