MCPcopy Index your code
hub / github.com/lima-vm/lima / RunShellCommand

Method RunShellCommand

pkg/mcp/toolset/shell.go:18–50  ·  view source on GitHub ↗
(ctx context.Context,
	_ *mcp.CallToolRequest, args msi.RunShellCommandParams,
)

Source from the content-addressed store, hash-verified

16)
17
18func (ts *ToolSet) RunShellCommand(ctx context.Context,
19 _ *mcp.CallToolRequest, args msi.RunShellCommandParams,
20) (*mcp.CallToolResult, *msi.RunShellCommandResult, error) {
21 if ts.inst == nil {
22 return nil, nil, errors.New("instance not registered")
23 }
24 guestPath, err := ts.TranslateHostPath(args.Directory)
25 if err != nil {
26 return nil, nil, err
27 }
28 cmd := exec.CommandContext(ctx, ts.limactl,
29 append([]string{"shell", "--workdir=" + guestPath, ts.inst.Name},
30 args.Command...)...)
31 var stdout, stderr bytes.Buffer
32 cmd.Stdout = &stdout
33 cmd.Stderr = &stderr
34 cmdErr := cmd.Run()
35 res := &msi.RunShellCommandResult{
36 Stdout: stdout.String(),
37 Stderr: stderr.String(),
38 }
39 if cmdErr == nil {
40 res.ExitCode = ptr.Of(0)
41 } else {
42 res.Error = cmdErr.Error()
43 if st := cmd.ProcessState; st != nil {
44 res.ExitCode = ptr.Of(st.ExitCode())
45 }
46 }
47 return &mcp.CallToolResult{
48 StructuredContent: res,
49 }, res, nil
50}

Callers 1

SearchFileContentMethod · 0.95

Calls 6

TranslateHostPathMethod · 0.95
OfFunction · 0.92
RunMethod · 0.45
StringMethod · 0.45
ErrorMethod · 0.45
ExitCodeMethod · 0.45

Tested by

no test coverage detected