Files
Ngino/src/Ngino.Client/Program.cs
T
2026-07-20 07:51:36 +02:00

34 lines
1.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using ReverseLlama.Client;
try
{
var options = ClientOptions.Parse(args);
Console.WriteLine("ReverseLlama client");
Console.WriteLine($" client id: {options.ClientId}");
Console.WriteLine($" server tunnel: {options.TunnelUri}");
Console.WriteLine($" local upstream: {options.Upstream}");
// Args are parsed by ClientOptions; keep them away from the host configuration.
var builder = Host.CreateApplicationBuilder(new HostApplicationBuilderSettings { Args = [] });
builder.Services.AddSingleton(options);
builder.Services.AddSingleton<TunnelClient>();
builder.Services.AddHostedService<TunnelWorker>();
builder.Services.AddWindowsService(service => service.ServiceName = "ReverseLlamaClient");
// The EventLog provider defaults to Warning; connection state is worth seeing there.
builder.Logging.AddFilter<Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider>("ReverseLlama.Client", LogLevel.Information);
await builder.Build().RunAsync();
return 0;
}
catch (Exception exception)
{
Console.Error.WriteLine(exception.Message);
Console.Error.WriteLine();
Console.Error.WriteLine(ClientOptions.Usage);
return 1;
}