in src/helpers/command.ts [70:110]
export function tryExecuteCommandAsync(
workingDirectory: string | undefined,
writeToOutputChannel: boolean,
commands: string,
...args: string[]
): ICommandExecute {
let cmdOutput: string = '';
let cmdOutputIncludingStderr: string = '';
const childProcess = spawnProcess(workingDirectory, commands, args);
const result = new Promise((resolve: (res: any) => void, reject: (error: Error) => void): void => {
childProcess.stdout.on('data', (data: string | Buffer) => {
data = data.toString();
cmdOutput = cmdOutput.concat(data);
cmdOutputIncludingStderr = cmdOutputIncludingStderr.concat(data);
if (writeToOutputChannel) {
Output.output(Constants.outputChannel.executeCommand, data);
}
});
childProcess.stderr.on('data', (data: string | Buffer) => {
data = data.toString();
cmdOutputIncludingStderr = cmdOutputIncludingStderr.concat(data);
if (writeToOutputChannel) {
Output.output(Constants.outputChannel.executeCommand, data);
}
});
childProcess.on('error', reject);
childProcess.on('exit', (code: number) => {
resolve({ cmdOutput, cmdOutputIncludingStderr, code });
});
});
return {
childProcess,
result,
};
}