all repos

mugit @ 88da23a7359ef5095d24302ed438c95c78ddba73

🐮 git server that your cow will love

mugit/internal/git/gitx/gitx.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
gitx: refactor once again..., 3 months ago
1
package gitx
2
3
import (
4
	"context"
5
	"io"
6
	"os/exec"
7
	"syscall"
8
)
9
10
var gitEnv = []string{
11
	"GIT_CONFIG_GLOBAL=/dev/null",
12
	"GIT_CONFIG_SYSTEM=/dev/null",
13
}
14
15
type cmdOpts struct {
16
	Cmd     []string
17
	RepoDir string
18
	Stdin   io.Reader
19
	Stdout  io.Writer
20
	Stderr  io.Writer
21
}
22
23
func gitCmd(ctx context.Context, opts cmdOpts) error {
24
	opts.Cmd = append(opts.Cmd, ".")
25
	cmd := exec.CommandContext(ctx, "git", opts.Cmd...)
26
	cmd.Dir = opts.RepoDir
27
	cmd.Env = gitEnv
28
	cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
29
	cmd.Stdin = opts.Stdin
30
	cmd.Stdout = opts.Stdout
31
	cmd.Stderr = opts.Stderr
32
	return cmd.Run()
33
}