MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / StartWslShellProcNoWsh

Function StartWslShellProcNoWsh

pkg/shellexec/shellexec.go:155–174  ·  view source on GitHub ↗
(ctx context.Context, termSize waveobj.TermSize, cmdStr string, cmdOpts CommandOptsType, conn *wslconn.WslConn)

Source from the content-addressed store, hash-verified

153}
154
155func StartWslShellProcNoWsh(ctx context.Context, termSize waveobj.TermSize, cmdStr string, cmdOpts CommandOptsType, conn *wslconn.WslConn) (*ShellProc, error) {
156 client := conn.GetClient()
157 conn.Infof(ctx, "WSL-NEWSESSION (StartWslShellProcNoWsh)")
158
159 ecmd := exec.Command("wsl.exe", "~", "-d", client.Name())
160
161 if termSize.Rows == 0 || termSize.Cols == 0 {
162 termSize.Rows = shellutil.DefaultTermRows
163 termSize.Cols = shellutil.DefaultTermCols
164 }
165 if termSize.Rows <= 0 || termSize.Cols <= 0 {
166 return nil, fmt.Errorf("invalid term size: %v", termSize)
167 }
168 cmdPty, err := pty.StartWithSize(ecmd, &pty.Winsize{Rows: uint16(termSize.Rows), Cols: uint16(termSize.Cols)})
169 if err != nil {
170 return nil, err
171 }
172 cmdWrap := MakeCmdWrap(ecmd, cmdPty, true)
173 return &ShellProc{Cmd: cmdWrap, ConnName: conn.GetName(), CloseOnce: &sync.Once{}, DoneCh: make(chan any)}, nil
174}
175
176func StartWslShellProc(ctx context.Context, termSize waveobj.TermSize, cmdStr string, cmdOpts CommandOptsType, conn *wslconn.WslConn) (*ShellProc, error) {
177 if cmdOpts.SwapToken == nil {

Callers 1

Calls 5

MakeCmdWrapFunction · 0.85
GetClientMethod · 0.45
InfofMethod · 0.45
NameMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected