Re: String from executeshell

2015-04-29 Thread Ali Çehreli via Digitalmars-d-learn

On 04/29/2015 02:05 PM, William Dunne wrote:

I'm trying to run this command:

wget -O - URL | gpg -d and get the result of the action, but I can't
quite work out to do it.

currently it looks like:

executeShell(escapeShellCommand(wget, -O, -, url, |, gpg, -D));

But I can't work out how to pull the string returned with this.

Any help?


executeShell returns the status and the output as a type (perhaps a 
tuple? :) ):


  http://dlang.org/phobos/std_process.html#.executeShell

You use the return value for both the status and the output:

auto wget = executeShell(escapeShellCommand(/* ... */));

if (wget.status == 0) {
/* success */
writeln(wget.output);// -- HERE
}

Ali



Re: String from executeshell

2015-04-29 Thread Ali Çehreli via Digitalmars-d-learn

On 04/29/2015 02:54 PM, Ali Çehreli wrote:


executeShell returns the status and the output as a type


Certainly not. The output is an object of a special type, which the 
documentation refers to as 'auto'. Grrr... :) Ok, maybe it's a Voldemort 
type. Anyway...


Ali



Re: String from executeshell

2015-04-29 Thread Adam D. Ruppe via Digitalmars-d-learn

On Wednesday, 29 April 2015 at 21:56:18 UTC, Ali Çehreli wrote:
Certainly not. The output is an object of a special type, which 
the documentation refers to as 'auto'. Grrr... :) Ok, maybe 
it's a Voldemort type. Anyway...


That's idiotic, to be frank, it should just be a traditional 
struct declared outside.


Just because we can do a thing, it does not necessarily follow 
that we must do that thing -- from the Gospel of Kirk


Re: String from executeshell

2015-04-29 Thread Vladimir Panteleev via Digitalmars-d-learn

On Wednesday, 29 April 2015 at 21:56:18 UTC, Ali Çehreli wrote:

On 04/29/2015 02:54 PM, Ali Çehreli wrote:


executeShell returns the status and the output as a type


Certainly not. The output is an object of a special type, which 
the documentation refers to as 'auto'. Grrr... :) Ok, maybe 
it's a Voldemort type. Anyway...


The function's documentation has a Returns section, which says:


Returns:
An std.typecons.Tuple!(int, status, string, output).