I'd like to do the following:
auto pipes = pipeShell(command, Redirect.stdout | Redirect.stderr);
while(true){
version(A1)
string line=pipes.stdout.readln;
version(A2)
auto line=pipes.stdout.readChunk(10);
version(A3)
auto line=pipes.stdout.readChar();
// do something with line
if(tryWait(pipes.pid).terminated)
break;
}
The problem is that 'string line=pipes.stdout.readln;' seems to block until the process is terminated, ie if the command is a long running command that prints a line every 1 second for 10 seconds, this program will wait 10 seconds before starting the processing.
I also tried with rawRead, readf, fgetc but couldn't make it work.
I'm on OSX, if that matters.
Is there any way to achieve this?