rannn505 / child-shell

Node.js bindings 🔗 for shell
http://rannn505.github.io/child-shell/
MIT License
299 stars 71 forks source link

Allow and separate stderr output #129

Open cawoodm opened 3 years ago

cawoodm commented 3 years ago

It seems impossible currently to receive output from a powershell script which outputs on stderr for example with Write-Error.

Firstly, if any output is on stderr then the promise is rejected unconditionally (invocationHadErrors). Secondly, all output is captured into the same stream.

lib/Shell.js

This script seems to be combining stdout and stderr:

this.streams.stdout.pipe(psOut);
this.streams.stderr.pipe(psOut);

It would be more powerful if one could call a powershell script and not assume that a single error is the end of the script. PowerShell itself offers $ErrorActionPreference="continue" whereby a script can output errors and still continue running.

rannn505 commented 3 years ago

@cawoodm Liked the idea very much! I'm about to release a new version in the coming days, would you like to help me think of a way to implement this in the new code?

cawoodm commented 3 years ago

Sure. I think we should provide an ErrorActionPreferenceoption and maybe a SeparateStdErroption.

You're moving to TypeScript right?