using Avalonia; using Castle.Core.Logging; using OfficeOpenXml; using Pilz.Configuration; namespace ModpackUpdater.Apps.Manager; public static class Program { internal static readonly SettingsManager settingsManager; public static ISettings Settings => settingsManager.Instance; static Program() { ExcelPackage.License.SetNonCommercialPersonal("Pilzinsel64"); settingsManager = new(GetSettingsPath(), true); settingsManager.Instance.Logger = new ConsoleLogger("Settings"); } /// /// The main entry point for the application. /// [STAThread] internal static void Main(string[] args) { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); } public static AppBuilder BuildAvaloniaApp() { return AppBuilder.Configure() .UsePlatformDetect() .WithInterFont() .LogToTrace(); } private static string GetSettingsPath() { const string AppDataDirectoryName = "MinecraftModpackUpdateManager"; const string settingsFileName = "Settings.json"; var settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), AppDataDirectoryName); Directory.CreateDirectory(settingsPath); settingsPath = Path.Combine(settingsPath, settingsFileName); return settingsPath; } }