Files
OmniNX-Installer-Payload/desktop/OmniNX.DesktopInstaller/Models/InstallModels.cs
T
niklascfw 91133f7098
Build / Build (push) Successful in 13s
Build Desktop Installer / Build (win-arm64) (push) Successful in 10s
Build Desktop Installer / Build (win-x64) (push) Successful in 10s
Desktop installer: release channel, saved choices, robust delete, logs
- 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.
2026-11-14 13:10:41 +01:00

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; }
}