48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using Avalonia;
|
|
using Castle.Core.Logging;
|
|
using Newtonsoft.Json;
|
|
using Pilz;
|
|
using Pilz.Configuration;
|
|
|
|
namespace ModpackUpdater.Apps.Client.Gui;
|
|
|
|
public static class Program
|
|
{
|
|
private static readonly SettingsManager settingsManager;
|
|
|
|
public static ISettings Settings => settingsManager.Instance;
|
|
public static ILogger Log { get; } = new ConsoleLogger();
|
|
|
|
static Program()
|
|
{
|
|
settingsManager = new(GetSettingsPath(2), true);
|
|
}
|
|
|
|
[STAThread]
|
|
internal static void Main(string[] args)
|
|
{
|
|
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
|
|
}
|
|
|
|
public static AppBuilder BuildAvaloniaApp()
|
|
{
|
|
return AppBuilder.Configure<App>()
|
|
.UsePlatformDetect()
|
|
.WithInterFont()
|
|
.LogToTrace();
|
|
}
|
|
|
|
private static string GetSettingsPath(int? settingsVersion = 3)
|
|
{
|
|
const string appDataDirectoryName = "MinecraftModpackUpdater";
|
|
var fileNamePostfix = settingsVersion == null ? string.Empty : $"V{settingsVersion}";
|
|
var settingsFileName = $"Settings{fileNamePostfix}.json";
|
|
|
|
var settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), appDataDirectoryName);
|
|
Directory.CreateDirectory(settingsPath);
|
|
settingsPath = Path.Combine(settingsPath, settingsFileName);
|
|
|
|
return settingsPath;
|
|
}
|
|
}
|