switch to atreugo
1 file changed, 3 insertions(+), 16 deletions(-)
changed files
M git/service/service.go → git/service/service.go
@@ -3,11 +3,9 @@ import ( "bytes" "context" - "errors" "fmt" "io" "log" - "net/http" "os/exec" "strings" "syscall"@@ -21,7 +19,7 @@ type Command struct { Dir string Stdin io.Reader - Stdout http.ResponseWriter + Stdout io.Writer } func (c *Command) InfoRefs(ctx context.Context) error {@@ -93,23 +91,11 @@ cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} stdoutPipe, _ := cmd.StdoutPipe() cmd.Stderr = cmd.Stdout - defer func() { - err2 := stdoutPipe.Close() - if err == nil { - err = errors.Join(err, err2) - } - }() stdinPipe, err := cmd.StdinPipe() if err != nil { return err } - defer func() { - err2 := stdinPipe.Close() - if err == nil { - err = errors.Join(err, err2) - } - }() if err := cmd.Start(); err != nil { log.Printf("git: failed to start git-upload-pack: %s", err)@@ -123,11 +109,12 @@ return err } - if _, err := io.Copy(newWriteFlusher(c.Stdout), stdoutPipe); err != nil { + if _, err := io.Copy(c.Stdout, stdoutPipe); err != nil { log.Printf("git: failed to copy stdout: %s", err) return err } + if err := cmd.Wait(); err != nil { log.Printf("git: failed to wait for git-upload-pack: %s", err)