Files

51 lines
1.5 KiB
C#

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");
}
/// <summary>
/// The main entry point for the application.
/// </summary>
[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<App>()
.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;
}
}