draw help

This commit is contained in:
2024-08-10 09:23:57 +02:00
parent 69cd869cd1
commit 2e467c0a96
2 changed files with 15 additions and 2 deletions

View File

@@ -6,17 +6,20 @@ namespace ModpackUpdater;
internal class Options internal class Options
{ {
private readonly List<string> additionals = []; private readonly List<string> additionals = [];
private readonly OptionSet options;
public IReadOnlyList<string> Additionals => additionals; public IReadOnlyList<string> Additionals => additionals;
public bool Help { get; private set; }
public bool Silent { get; private set; } public bool Silent { get; private set; }
public bool NoUi { get; private set; } public bool NoUi { get; private set; }
public UpdateCheckOptionsAdv UpdateOptions { get; } = new(); public UpdateCheckOptionsAdv UpdateOptions { get; } = new();
public Options(string[] args) public Options(string[] args)
{ {
var options = new OptionSet options = new OptionSet
{ {
{ "silent", "Do not output anything.", s => Silent = s != null }, { "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 }, { "n|noui", "Install without user interface.", n => NoUi = n != null },
{ "p|profile=", "Sets the minecraft profile folder.", p => UpdateOptions.ProfileFolder = p }, { "p|profile=", "Sets the minecraft profile folder.", p => UpdateOptions.ProfileFolder = p },
{ "c|config=", "Sets the minecraft profile folder.", c => UpdateOptions.ModpackConfig = c }, { "c|config=", "Sets the minecraft profile folder.", c => UpdateOptions.ModpackConfig = c },
@@ -29,4 +32,9 @@ internal class Options
additionals.AddRange(options.Parse(args)); additionals.AddRange(options.Parse(args));
} }
public void DrawHelp()
{
options.WriteOptionDescriptions(Console.Out);
}
} }

View File

@@ -30,7 +30,12 @@ public static class Program
{ {
var options = new Options(args); var options = new Options(args);
if (options.NoUi) if (options.NoUi)
InstallWithoutGui(options.UpdateOptions, options.Silent); {
if (options.Help)
options.DrawHelp();
else
InstallWithoutGui(options.UpdateOptions, options.Silent);
}
else else
{ {
ShowWindow(GetConsoleWindow(), 0); ShowWindow(GetConsoleWindow(), 0);