51 lines
1.5 KiB
C#
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;
|
|
}
|
|
} |