Skip to content

Commit 7e0b0e1

Browse files
committed
remove ConsoleAppHost, reanme RunConsoleAppEngine -> RunConsoleAppFramework
1 parent 6d9827e commit 7e0b0e1

File tree

11 files changed

+100
-161
lines changed

11 files changed

+100
-161
lines changed

sandbox/MultiContainedApp/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class Program
1010
{
1111
static async Task Main(string[] args)
1212
{
13-
await ConsoleAppHost.CreateDefaultBuilder()
14-
.RunConsoleAppEngineAsync(args);
13+
await Host.CreateDefaultBuilder()
14+
.RunConsoleAppFrameworkAsync(args);
1515
}
1616
}
1717

sandbox/SingleContainedApp/Program.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -117,16 +117,16 @@ public class ComplexArgTest : ConsoleAppBase
117117
{
118118
public void Foo(int[] array, Person person)
119119
{
120-
Console.WriteLine(array.Length + ":" + string.Join(", ", array));
121-
Console.WriteLine(person.Age + ":" + person.Name);
120+
Context.Logger.LogTrace(array.Length + ":" + string.Join(", ", array));
121+
Context.Logger.LogInformation(person.Age + ":" + person.Name);
122122
}
123123
}
124124

125125
public class StandardArgTest : ConsoleAppBase
126126
{
127127
public void Run([Option(0, "message of x.")]string x)
128128
{
129-
Console.WriteLine("1." + x);
129+
// Console.WriteLine("1." + x);
130130
//Console.WriteLine("2." + y);
131131
}
132132
}
@@ -141,15 +141,22 @@ class Program
141141
{
142142
static async Task Main(string[] args)
143143
{
144-
// args = new[] { "-array", "10,20,30", "-person", @"{""Age"":10,""Name"":""foo""}" };
144+
args = new[] { "-array", "10,20,30", "-person", @"{""Age"":10,""Name"":""foo""}" };
145145

146-
await ConsoleAppHost.CreateDefaultBuilder()
147-
.ConfigureServices((hostContext, services) =>
146+
147+
await Host.CreateDefaultBuilder()
148+
.ConfigureLogging(logging =>
148149
{
149-
// mapping config json to IOption<MyConfig>
150-
services.Configure<MyConfig>(hostContext.Configuration);
150+
logging.SetMinimumLevel(LogLevel.Trace).ReplaceToSimpleConsole();
151151
})
152-
.RunConsoleAppEngineAsync<StandardArgTest>(args);
152+
.RunConsoleAppFrameworkAsync<ComplexArgTest>(args);
153+
// .RunConsoleAppEngineAsync
154+
//.ConfigureServices((hostContext, services) =>
155+
//{
156+
// // mapping config json to IOption<MyConfig>
157+
// services.Configure<MyConfig>(hostContext.Configuration);
158+
//})
159+
//.RunConsoleAppEngineAsync<StandardArgTest>(args);
153160
}
154161
}
155162
}

sandbox/SingleContainedAppWithConfig/Program.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using ConsoleAppFramework;
22
using Microsoft.Extensions.DependencyInjection;
3+
using Microsoft.Extensions.Hosting;
34
using Microsoft.Extensions.Logging;
45
using Microsoft.Extensions.Options;
56
using System.Threading.Tasks;
@@ -36,7 +37,7 @@ class Program
3637
static async Task Main(string[] args)
3738
{
3839
// using ConsoleAppFramework.Configuration;
39-
await ConsoleAppFramework.ConsoleAppHost.CreateDefaultBuilder()
40+
await Host.CreateDefaultBuilder()
4041
.ConfigureServices((hostContext, services) =>
4142
{
4243
services.AddOptions();
@@ -47,7 +48,7 @@ await ConsoleAppFramework.ConsoleAppHost.CreateDefaultBuilder()
4748
services.AddTransient<MyServiceB>();
4849
services.AddSingleton<MyServiceC>();
4950
})
50-
.RunConsoleAppEngineAsync<Baz>(args);
51+
.RunConsoleAppFrameworkAsync<Baz>(args);
5152
}
5253
}
5354

src/ConsoleAppFramework/ConsoleAppEngineHostBuilderExtensions.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ public static class ConsoleAppEngineHostBuilderExtensions
1313
const string HelpCommand = "help";
1414
const string VersionCommand = "version";
1515

16-
public static IHostBuilder UseConsoleAppEngine(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
16+
/// <summary>
17+
/// Setup multiple ConsoleApp that are searched from all assemblies.
18+
/// </summary>
19+
public static IHostBuilder UseConsoleAppFramework(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
1720
{
1821
IHostBuilder ConfigureEmptyService()
1922
{
@@ -105,12 +108,18 @@ IHostBuilder ConfigureEmptyService()
105108
return hostBuilder.UseConsoleLifetime();
106109
}
107110

108-
public static Task RunConsoleAppEngineAsync(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
111+
/// <summary>
112+
/// Run multiple ConsoleApp that are searched from all assemblies.
113+
/// </summary>
114+
public static Task RunConsoleAppFrameworkAsync(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
109115
{
110-
return UseConsoleAppEngine(hostBuilder, args, interceptor).Build().RunAsync();
116+
return UseConsoleAppFramework(hostBuilder, args, interceptor).Build().RunAsync();
111117
}
112118

113-
public static IHostBuilder UseConsoleAppEngine<T>(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
119+
/// <summary>
120+
/// Setup a single ConsoleApp type that is targeted by type argument.
121+
/// </summary>
122+
public static IHostBuilder UseConsoleAppFramework<T>(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
114123
where T : ConsoleAppBase
115124
{
116125
IHostBuilder ConfigureEmptyService()
@@ -200,10 +209,13 @@ IHostBuilder ConfigureEmptyService()
200209
return hostBuilder.UseConsoleLifetime();
201210
}
202211

203-
public static Task RunConsoleAppEngineAsync<T>(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
212+
/// <summary>
213+
/// Run a single ConsoleApp type that is targeted by type argument.
214+
/// </summary>
215+
public static Task RunConsoleAppFrameworkAsync<T>(this IHostBuilder hostBuilder, string[] args, IConsoleAppInterceptor? interceptor = null)
204216
where T : ConsoleAppBase
205217
{
206-
return UseConsoleAppEngine<T>(hostBuilder, args, interceptor).Build().RunAsync();
218+
return UseConsoleAppFramework<T>(hostBuilder, args, interceptor).Build().RunAsync();
207219
}
208220

209221
static bool TrimEquals(string arg, string command)

src/ConsoleAppFramework/ConsoleAppHost.cs

Lines changed: 0 additions & 107 deletions
This file was deleted.

src/ConsoleAppFramework/SimpleConsoleLogger.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using Microsoft.Extensions.DependencyInjection;
2+
using System.Linq;
23
using Microsoft.Extensions.DependencyInjection.Extensions;
34
using Microsoft.Extensions.Logging;
45
using System;
6+
using ConsoleAppFramework.Logging;
57

68
namespace ConsoleAppFramework.Logging
79
{
@@ -76,13 +78,37 @@ public void Dispose()
7678
}
7779
}
7880
}
81+
}
7982

83+
namespace ConsoleAppFramework
84+
{
8085
public static class SimpleConsoleLoggerExtensions
8186
{
87+
/// <summary>
88+
/// use ConsoleAppFramework.Logging.SimpleConsoleLogger.
89+
/// </summary>
90+
/// <param name="builder"></param>
91+
/// <returns></returns>
8292
public static ILoggingBuilder AddSimpleConsole(this ILoggingBuilder builder)
8393
{
8494
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, SimpleConsoleLoggerProvider>());
8595
return builder;
8696
}
97+
98+
/// <summary>
99+
/// Remove default ConsoleLoggerProvider and replace to SimpleConsoleLogger.
100+
/// </summary>
101+
public static ILoggingBuilder ReplaceToSimpleConsole(this ILoggingBuilder builder)
102+
{
103+
// Use SimpleConsoleLogger instead of the default ConsoleLogger.
104+
var consoleLogger = builder.Services.FirstOrDefault(x => x.ImplementationType?.FullName == "Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider");
105+
if (consoleLogger != null)
106+
{
107+
builder.Services.Remove(consoleLogger);
108+
}
109+
110+
builder.AddSimpleConsole();
111+
return builder;
112+
}
87113
}
88114
}

tests/ConsoleAppFramework.Tests/CommandAttributeTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ class ResultContainer
2828
[Fact]
2929
public async Task TestCommandName()
3030
{
31-
var host = ConsoleAppHost.CreateDefaultBuilder()
31+
var host = Host.CreateDefaultBuilder()
3232
.ConfigureServices((c, services) =>
3333
{
3434
services.AddSingleton<ResultContainer>();
3535
})
36-
.UseConsoleAppEngine<CommandAttributeTestCommand>(new string[]{ "test", "-value", "1" })
36+
.UseConsoleAppFramework<CommandAttributeTestCommand>(new string[]{ "test", "-value", "1" })
3737
.Build();
3838
var result = host.Services.GetService<ResultContainer>();
3939
await host.RunAsync();

tests/ConsoleAppFramework.Tests/ExitCodeTest.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,55 +55,55 @@ public Task<int> ExitCodeWithTaskException()
5555
public async Task NoExitCode()
5656
{
5757
Environment.ExitCode = 0;
58-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCode) });
58+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCode) });
5959
Assert.Equal(0, Environment.ExitCode);
6060
}
6161

6262
[Fact]
6363
public async Task NoExitCodeWithTask()
6464
{
6565
Environment.ExitCode = 0;
66-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCodeWithTask) });
66+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCodeWithTask) });
6767
Assert.Equal(0, Environment.ExitCode);
6868
}
6969

7070
[Fact]
7171
public async Task NoExitCodeException()
7272
{
7373
Environment.ExitCode = 0;
74-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCodeException) });
74+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(NoExitCodeException) });
7575
Assert.Equal(1, Environment.ExitCode);
7676
}
7777

7878
[Fact]
7979
public async Task ExitCode()
8080
{
8181
Environment.ExitCode = 0;
82-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(ExitCode) });
82+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(ExitCode) });
8383
Assert.Equal(12345, Environment.ExitCode);
8484
}
8585

8686
[Fact]
8787
public async Task ExitCodeException()
8888
{
8989
Environment.ExitCode = 0;
90-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeException) });
90+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeException) });
9191
Assert.Equal(1, Environment.ExitCode);
9292
}
9393

9494
[Fact]
9595
public async Task ExitCodeWithTask()
9696
{
9797
Environment.ExitCode = 0;
98-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeWithTask) });
98+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeWithTask) });
9999
Assert.Equal(54321, Environment.ExitCode);
100100
}
101101

102102
[Fact]
103103
public async Task ExitCodeWithTaskException()
104104
{
105105
Environment.ExitCode = 0;
106-
await new HostBuilder().RunConsoleAppEngineAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeWithTaskException) });
106+
await new HostBuilder().RunConsoleAppFrameworkAsync<ExitCodeTestBatch>(new[] { nameof(ExitCodeWithTaskException) });
107107
Assert.Equal(1, Environment.ExitCode);
108108
}
109109

0 commit comments

Comments
 (0)