diff options
Diffstat (limited to 'packages/cli/src/ui/hooks/shellCommandProcessor.ts')
| -rw-r--r-- | packages/cli/src/ui/hooks/shellCommandProcessor.ts | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/packages/cli/src/ui/hooks/shellCommandProcessor.ts b/packages/cli/src/ui/hooks/shellCommandProcessor.ts index 08df0a74..23f2bb29 100644 --- a/packages/cli/src/ui/hooks/shellCommandProcessor.ts +++ b/packages/cli/src/ui/hooks/shellCommandProcessor.ts @@ -101,10 +101,11 @@ export const useShellCommandProcessor = ( commandToExecute = `{ ${command} }; __code=$?; pwd > "${pwdFilePath}"; exit $__code`; } - const execPromise = new Promise<void>((resolve) => { + const executeCommand = async ( + resolve: (value: void | PromiseLike<void>) => void, + ) => { let lastUpdateTime = Date.now(); let cumulativeStdout = ''; - let cumulativeStderr = ''; let isBinaryStream = false; let binaryBytesReceived = 0; @@ -134,7 +135,7 @@ export const useShellCommandProcessor = ( onDebugMessage(`Executing in ${targetDir}: ${commandToExecute}`); try { - const { pid, result } = ShellExecutionService.execute( + const { pid, result } = await ShellExecutionService.execute( commandToExecute, targetDir, (event) => { @@ -142,11 +143,7 @@ export const useShellCommandProcessor = ( case 'data': // Do not process text data if we've already switched to binary mode. if (isBinaryStream) break; - if (event.stream === 'stdout') { - cumulativeStdout += event.chunk; - } else { - cumulativeStderr += event.chunk; - } + cumulativeStdout += event.chunk; break; case 'binary_detected': isBinaryStream = true; @@ -172,9 +169,7 @@ export const useShellCommandProcessor = ( '[Binary output detected. Halting stream...]'; } } else { - currentDisplayOutput = - cumulativeStdout + - (cumulativeStderr ? `\n${cumulativeStderr}` : ''); + currentDisplayOutput = cumulativeStdout; } // Throttle pending UI updates to avoid excessive re-renders. @@ -192,6 +187,7 @@ export const useShellCommandProcessor = ( } }, abortSignal, + config.getShouldUseNodePtyShell(), ); executionPid = pid; @@ -295,6 +291,10 @@ export const useShellCommandProcessor = ( resolve(); // Resolve the promise to unblock `onExec` } + }; + + const execPromise = new Promise<void>((resolve) => { + executeCommand(resolve); }); onExec(execPromise); |
