all repos — elgit @ 975625f9d4d26eb56f4428f2921b9e1090a49621

fork of legit: web frontend for git, written in go

switch to atreugo

Alan Pearce
commit

975625f9d4d26eb56f4428f2921b9e1090a49621

parent

8b1540f0bd4d2e042b28506abcb3de9189399b1b

1 file changed, 3 insertions(+), 16 deletions(-)

changed files
M git/service/service.gogit/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)