35 lines
1.5 KiB
C#
35 lines
1.5 KiB
C#
using ModpackUpdater.Model;
|
|
using Mono.Options;
|
|
|
|
namespace ModpackUpdater;
|
|
|
|
internal class Options
|
|
{
|
|
private readonly List<string> additionals = [];
|
|
|
|
public IReadOnlyList<string> 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<Side>(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);
|
|
}
|
|
}
|