MCPcopy Create free account
hub / github.com/alibaba/open-code-review / runGitGrep

Method runGitGrep

internal/tool/code_search.go:110–134  ·  view source on GitHub ↗
(parentCtx context.Context, cmdArgs []string)

Source from the content-addressed store, hash-verified

108}
109
110func (p *CodeSearchProvider) runGitGrep(parentCtx context.Context, cmdArgs []string) (string, string, error) {
111 ctx, cancel := context.WithTimeout(parentCtx, gitGrepTimeout)
112 defer cancel()
113
114 if p.FileReader.Runner != nil {
115 stdout, stderr, err := p.FileReader.Runner.RunSplit(ctx, p.FileReader.RepoDir, cmdArgs...)
116 if ctx.Err() != nil && err != nil {
117 return "", "", ctx.Err()
118 }
119 return stdout, stderr, err
120 }
121
122 cmd := exec.CommandContext(ctx, "git", cmdArgs...)
123 cmd.Dir = p.FileReader.RepoDir
124
125 var stdout, stderr bytes.Buffer
126 cmd.Stdout = &stdout
127 cmd.Stderr = &stderr
128
129 err := cmd.Run()
130 if ctx.Err() != nil && err != nil && cmd.ProcessState != nil && cmd.ProcessState.ExitCode() == -1 {
131 return "", "", ctx.Err()
132 }
133 return stdout.String(), stderr.String(), err
134}
135
136func (p *CodeSearchProvider) gitGrep(ctx context.Context, searchText string, caseSensitive bool, usePerlRegexp bool, pathspec []string) (string, error) {
137 cmdArgs := p.buildGrepArgs(searchText, caseSensitive, usePerlRegexp, false, pathspec)

Callers 1

gitGrepMethod · 0.95

Calls 3

RunSplitMethod · 0.80
RunMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected