mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
Killed history
This commit is contained in:
24
NadekoBot.Core/Common/OptionsParser.cs
Normal file
24
NadekoBot.Core/Common/OptionsParser.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using CommandLine;
|
||||
|
||||
namespace NadekoBot.Core.Common
|
||||
{
|
||||
public static class OptionsParser
|
||||
{
|
||||
public static T ParseFrom<T>(string[] args) where T : INadekoCommandOptions, new()
|
||||
=> ParseFrom(new T(), args).Item1;
|
||||
|
||||
public static (T, bool) ParseFrom<T>(T options, string[] args) where T : INadekoCommandOptions
|
||||
{
|
||||
using (var p = new Parser(x =>
|
||||
{
|
||||
x.HelpWriter = null;
|
||||
}))
|
||||
{
|
||||
var res = p.ParseArguments<T>(args);
|
||||
options = res.MapResult(x => x, x => options);
|
||||
options.NormalizeOptions();
|
||||
return (options, res.Tag == ParserResultType.Parsed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user