using ModpackUpdater.Model; using Mono.Options; namespace ModpackUpdater; internal class Options { private readonly List additionals = []; public IReadOnlyList Additionals => additionals; public bool Silent { get; private set; } public bool NoUi { get; private set; } public bool NoUpdate { get; private set; }; public bool AllowUpdaterAfterInstall { get; private set; } = true; public Side Side { get; private set; } = Side.Client; public string ProfileFolder { get; private set; } public string ModpackConfig { get; private set; } public Options(string[] args) { var options = new OptionSet { { "silent", "Do not output anything.", s => Silent = s != null }, { "n|noui", "Install without user interface.", n => NoUi = n != null }, { "p|profile=", "Sets the minecraft profile folder.", p => ProfileFolder = p }, { "c|config=", "Sets the minecraft profile folder.", c => ModpackConfig = c }, { "s|side=", "Sets the minecraft profile folder.\nDefault side is Client.\nAvailable: Client, Server", s => Side = Enum.Parse(s)}, { "uai", "Allow an update directly after install. This only has affect if there is no existing installation.", uai => AllowUpdaterAfterInstall = uai != null}, { "noupdate", "Skip the update check wich happens when opening the user interface.", noupdate => NoUpdate = noupdate != null}, }; var additional = options.Parse(args); } }