yevhen / Nake

Magic script-based C# task runner for .NET Core
Other
234 stars 22 forks source link

Fix wiki documentation for Shell #26

Open yevhen opened 4 years ago

yevhen commented 4 years ago
bufferUnderrun commented 2 years ago

i follow the wiki and await-ing is not working :

var result = await $"dir";
WriteLine(result.ExitCode);
result.StdOut.ForEach(WriteLine);

Resulting

Script compilation failure! See diagnostics below.

Nake.csx(26,1): error CS0670: Field cannot have void type
Nake.csx(27,17): error CS0023: Operator '.' cannot be applied to operand of type 'void'
Nake.csx(28,7): error CS0023: Operator '.' cannot be applied to operand of type 'void'

So where i miss the point ?

Thanks for your help.

bufferUnderrun commented 2 years ago

Same for the official doc in the readme.md : copy/paste and running code throw error. For the last v3.0, the starting template looks like :

#r "nuget: Nake.Meta" // for Nake attribute
#r "nuget: Nake.Utility" // for all other class

using Nake;
using static Nake.Shell;
using static System.Console;

[Nake] void Default() {
    Console.WriteLine("Default();");
    Nake.Session.Exit("ok");
}
yevhen commented 1 year ago

Uh, somehow lost this issue.

@bufferUnderrun I'll check that. But I swear awaiting works fine. I use it extensively here https://github.com/yevhen/Streamstone/blob/master/Nake.csx

stratdev3 commented 1 year ago

I found the issue : await works but does not return any value whereas the wiki documentation says it can.

Working

#r "nuget: Nake.Meta" // for Nake attribute
#r "nuget: Nake.Utility" // for all other class

using Nake;
using static Nake.Shell;
using static System.Console;

[Nake] async Task Default() {
    await $"dir";
    Nake.Session.Exit("ok");
}

Not working

#r "nuget: Nake.Meta" // for Nake attribute
#r "nuget: Nake.Utility" // for all other class

using Nake;
using static Nake.Shell;
using static System.Console;

[Nake] async Task Default() {
    var result = await $"dir";
    Nake.Session.Exit("ok");
}

Error

Script compilation failure! See diagnostics below.
C:\www\appweb\src\nake.csx(78,9): error CS0815: Cannot assign void to an implicitly-typed variable

One last question : What is the difference between Cmd("dir"); and await $"dir"; ?

Thanks for you help

yevhen commented 1 year ago

@stratdev3 I'll check this and get back to you