December 06, 2013
On Fri, 06 Dec 2013 01:26:28 +0100, Adam D. Ruppe wrote:
>
> On Friday, 6 December 2013 at 00:24:22 UTC, Hugo Florentino wrote:
>> if nothing is passed from stdin and no parameter is provided,
>> the application freezes:
>
> Does it freeze or just wait for you to press enter on the
> keyboard?
>

I see... so the "problem" simply was that function readln was expecting user input. In that case, this is not what I intended.
I want the application to receive the stdout of another command as stdin, and to detect if nothing is sent.
How coud I accomplish this?
December 06, 2013
On Friday, 6 December 2013 at 02:41:28 UTC, Hugo Florentino wrote:
> I see... so the "problem" simply was that function readln was expecting user input. In that case, this is not what I intended.
> I want the application to receive the stdout of another command as stdin, and to detect if nothing is sent.
> How coud I accomplish this?

Then you'll want std.process[1]. This provides functions for "piping" output[2]. As for detecting output, that can only be verified once the other process has finished; to handle that it should be reasonable to execute[3] and check the complete output.

1. http://dlang.org/phobos/std_process.html
2. http://dlang.org/phobos/std_process.html#.pipeProcess
3. http://dlang.org/phobos/std_process.html#.execute