re-organze namespace
This commit is contained in:
39
ModpackUpdater.Apps.Client/Options.cs
Normal file
39
ModpackUpdater.Apps.Client/Options.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Mono.Options;
|
||||
|
||||
namespace ModpackUpdater.Apps.Client;
|
||||
|
||||
internal class Options
|
||||
{
|
||||
private readonly List<string> additionals = [];
|
||||
private readonly OptionSet options;
|
||||
|
||||
public IReadOnlyList<string> Additionals => additionals;
|
||||
public bool Help { get; private set; }
|
||||
public bool Silent { get; private set; }
|
||||
public bool NoUi { get; private set; }
|
||||
public UpdateCheckOptionsAdv UpdateOptions { get; } = new();
|
||||
|
||||
public Options(string[] args)
|
||||
{
|
||||
options = new OptionSet
|
||||
{
|
||||
{ "silent", "Do not output anything.", s => Silent = s != null },
|
||||
{ "h|help", "Writes the help text as output.", h => Help = h != null },
|
||||
{ "n|noui", "Install without user interface.", n => NoUi = n != null },
|
||||
{ "p|profile=", "Sets the minecraft profile folder.", p => UpdateOptions.ProfileFolder = p },
|
||||
{ "c|config=", "Sets the modpack update info url.", c => UpdateOptions.ModpackConfig = c },
|
||||
{ "s|side=", "Sets the installation side.\nDefault side is Client.\nAvailable: Client, Server", s => UpdateOptions.Side = Enum.Parse<Side>(s)},
|
||||
{ "u|uai", "Allow an update directly after install. This only has effect if there is no existing installation.", uai => UpdateOptions.AllowUpdaterAfterInstall = uai != null},
|
||||
{ "noupdate", "Skip the update check.", noupdate => UpdateOptions.NoUpdate = noupdate != null},
|
||||
{ "m|maintenance", "Ignores the maintenance mode.", m => UpdateOptions.IgnoreMaintenance = m != null},
|
||||
{ "k|key=", "An key for retriving extra files on updates.", k => UpdateOptions.ExtrasKey = k},
|
||||
};
|
||||
|
||||
additionals.AddRange(options.Parse(args));
|
||||
}
|
||||
|
||||
public void DrawHelp()
|
||||
{
|
||||
options.WriteOptionDescriptions(Console.Out);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user