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