53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
// File: TinfoilVibeServer/Program.cs
|
|
|
|
using LibHac.Common.Keys;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Configuration;
|
|
using TinfoilVibeServer.Config;
|
|
using TinfoilVibeServer.Models;
|
|
using TinfoilVibeServer.Services;
|
|
using TinfoilVibeServer.Persistence;
|
|
|
|
namespace TinfoilVibeServer;
|
|
|
|
internal static class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
var host = Host.CreateDefaultBuilder(args)
|
|
.ConfigureAppConfiguration((ctx, cfg) =>
|
|
{
|
|
cfg.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
|
|
cfg.AddEnvironmentVariables();
|
|
cfg.AddCommandLine(args);
|
|
})
|
|
.ConfigureServices((ctx, services) =>
|
|
{
|
|
// Configuration POCO
|
|
services.Configure<GameDirectoriesOptions>(ctx.Configuration.GetSection("GameDirectories"));
|
|
|
|
// Snapshot persistence
|
|
services.AddSingleton<ISnapshotRepository, SnapshotRepository>();
|
|
|
|
// LibHac parser
|
|
services.AddSingleton<ILibHacParser, LibHacParser>();
|
|
|
|
// Main service
|
|
services.AddHostedService<GameDirectoryWatcherService>();
|
|
KeySetHolder.KeySet = ExternalKeyReader.ReadKeyFile(ctx.Configuration.GetSection("KeySet").Get<string>());
|
|
})
|
|
.ConfigureLogging((ctx, logging) =>
|
|
{
|
|
logging.ClearProviders();
|
|
logging.AddConsole(options =>
|
|
{
|
|
options.TimestampFormat = "[yyyy-MM-dd HH:mm:ss] ";
|
|
});
|
|
})
|
|
.Build();
|
|
|
|
host.Run();
|
|
}
|
|
} |