merge.go 865 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package workdir
  2. import (
  3. "context"
  4. "errors"
  5. "github.com/leonelquinteros/gotext"
  6. "github.com/Jguer/yay/v12/pkg/settings/exe"
  7. )
  8. func gitMerge(ctx context.Context, cmdBuilder exe.ICmdBuilder, dir string) error {
  9. _, stderr, err := cmdBuilder.Capture(
  10. cmdBuilder.BuildGitCmd(ctx,
  11. dir, "reset", "--hard", "HEAD"))
  12. if err != nil {
  13. return errors.New(gotext.Get("error resetting %s: %s", dir, stderr))
  14. }
  15. _, stderr, err = cmdBuilder.Capture(
  16. cmdBuilder.BuildGitCmd(ctx,
  17. dir, "merge", "--no-edit", "--ff"))
  18. if err != nil {
  19. return errors.New(gotext.Get("error merging %s: %s", dir, stderr))
  20. }
  21. return nil
  22. }
  23. func mergePkgbuilds(ctx context.Context, cmdBuilder exe.ICmdBuilder, pkgbuildDirs map[string]string) error {
  24. for _, dir := range pkgbuildDirs {
  25. err := gitMerge(ctx, cmdBuilder, dir)
  26. if err != nil {
  27. return err
  28. }
  29. }
  30. return nil
  31. }