gitea源码

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2019 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package pipeline
  4. import (
  5. "bytes"
  6. "context"
  7. "fmt"
  8. "io"
  9. "strings"
  10. "sync"
  11. "code.gitea.io/gitea/modules/git/gitcmd"
  12. )
  13. // NameRevStdin runs name-rev --stdin
  14. func NameRevStdin(ctx context.Context, shasToNameReader *io.PipeReader, nameRevStdinWriter *io.PipeWriter, wg *sync.WaitGroup, tmpBasePath string) {
  15. defer wg.Done()
  16. defer shasToNameReader.Close()
  17. defer nameRevStdinWriter.Close()
  18. stderr := new(bytes.Buffer)
  19. var errbuf strings.Builder
  20. if err := gitcmd.NewCommand("name-rev", "--stdin", "--name-only", "--always").Run(ctx, &gitcmd.RunOpts{
  21. Dir: tmpBasePath,
  22. Stdout: nameRevStdinWriter,
  23. Stdin: shasToNameReader,
  24. Stderr: stderr,
  25. }); err != nil {
  26. _ = shasToNameReader.CloseWithError(fmt.Errorf("git name-rev [%s]: %w - %s", tmpBasePath, err, errbuf.String()))
  27. }
  28. }