- Channel radio (Release / Master (Instabil)); master installs the rolling 'master' release from OmniNX/OmniNX-Master. Preselected from release_channel in the card's manifest.ini. - Variant, RAM (8gb) and Hekate-Pro choice are prefilled from the card (manifest.ini / config.ini) like the payload does, instead of silently switching users back to 4 GB / Standard. - Clear read-only attributes before deleting folders. - Remove leftover "OmniNX <Variant>" pack folders after installing. - Create empty folders from the pack. - Save every run's log to %LocalAppData%\OmniNX-Desktop-Installer\logs, plus a "Save log" button.
62 lines
1.4 KiB
C#
62 lines
1.4 KiB
C#
namespace OmniNX.DesktopInstaller.Models;
|
|
|
|
public enum OmniNxVariant
|
|
{
|
|
None = 0,
|
|
Light,
|
|
Standard,
|
|
Oc,
|
|
}
|
|
|
|
public enum ReleaseChannel
|
|
{
|
|
Release,
|
|
Master,
|
|
}
|
|
|
|
public enum InstallMode
|
|
{
|
|
Clean,
|
|
Update,
|
|
}
|
|
|
|
public sealed class InstallOptions
|
|
{
|
|
public required string DriveRoot { get; init; }
|
|
public required OmniNxVariant Variant { get; init; }
|
|
public InstallMode Mode { get; init; }
|
|
public bool Use8GbRam { get; init; }
|
|
public bool UseHekateAmsPro { get; init; }
|
|
public bool ForceCleanInstall { get; init; }
|
|
public string? StagingPath { get; init; }
|
|
}
|
|
|
|
public sealed class OmniNxStatus
|
|
{
|
|
public bool IsInstalled { get; init; }
|
|
public OmniNxVariant Variant { get; init; }
|
|
public string Version { get; init; } = string.Empty;
|
|
public ReleaseChannel Channel { get; init; } = ReleaseChannel.Release;
|
|
}
|
|
|
|
public sealed class ReleaseInfo
|
|
{
|
|
public required string TagName { get; init; }
|
|
public required string Name { get; init; }
|
|
public required IReadOnlyList<ReleaseAsset> Assets { get; init; }
|
|
}
|
|
|
|
public sealed class ReleaseAsset
|
|
{
|
|
public required string Name { get; init; }
|
|
public required string DownloadUrl { get; init; }
|
|
public long Size { get; init; }
|
|
}
|
|
|
|
public sealed class InstallProgressReport
|
|
{
|
|
public required string Message { get; init; }
|
|
public int? Percent { get; init; }
|
|
public bool IsError { get; init; }
|
|
}
|