Fix argument parser
This commit is contained in:
parent
3390716c0a
commit
43e9547219
2 changed files with 12 additions and 24 deletions
|
@ -5,19 +5,15 @@ namespace LibAC.Arguments;
|
|||
|
||||
public class ArgumentParser
|
||||
{
|
||||
public List<IArgument> Arguments { get; private set; }
|
||||
|
||||
public ArgumentParser()
|
||||
{
|
||||
Arguments = new List<IArgument>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses a string array of arguments.
|
||||
/// </summary>
|
||||
/// <param name="args">The string array of arguments to parse.</param>
|
||||
public void Parse(string[] args)
|
||||
/// <returns>A arguments object representing the input</returns>
|
||||
public static Arguments Parse(string[] args)
|
||||
{
|
||||
Arguments ret = new Arguments();
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
{
|
||||
var arg = args[i];
|
||||
|
@ -40,36 +36,28 @@ namespace LibAC.Arguments;
|
|||
// Determine the argument type and add it to the list
|
||||
if (int.TryParse(value?.ToString(), out var intValue))
|
||||
{
|
||||
Arguments.Add(new IntegerArgument(key, intValue));
|
||||
ret.AddArgument(new IntegerArgument(key, intValue));
|
||||
}
|
||||
else if (bool.TryParse(value?.ToString(), out var boolValue))
|
||||
{
|
||||
Arguments.Add(new BooleanArgument(key, boolValue));
|
||||
ret.AddArgument(new BooleanArgument(key, boolValue));
|
||||
}
|
||||
else if (float.TryParse(value?.ToString(), out var floatValue))
|
||||
{
|
||||
Arguments.Add(new FloatArgument(key, floatValue));
|
||||
ret.AddArgument(new FloatArgument(key, floatValue));
|
||||
}
|
||||
else if (double.TryParse(value?.ToString(), out var doubleValue))
|
||||
{
|
||||
Arguments.Add(new DoubleArgument(key, doubleValue));
|
||||
ret.AddArgument(new DoubleArgument(key, doubleValue));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Default to StringArgument if no matching type is found
|
||||
Arguments.Add(new StringArgument(key, value?.ToString()));
|
||||
ret.AddArgument(new StringArgument(key, value?.ToString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves an argument by its key.
|
||||
/// </summary>
|
||||
/// <param name="key">The key of the argument to retrieve.</param>
|
||||
/// <returns>The IArgument associated with the key, or null if not found.</returns>
|
||||
public IArgument? GetArgument(string key)
|
||||
{
|
||||
return Arguments.Find(arg => arg.Key.Equals(key, StringComparison.OrdinalIgnoreCase));
|
||||
return ret;
|
||||
}
|
||||
}
|
6
LibAC.cs
6
LibAC.cs
|
@ -5,14 +5,14 @@ using System.Reflection;
|
|||
[assembly:AssemblyDefaultAlias("LibAC")]
|
||||
[assembly:AssemblyTitle("LibAC")]
|
||||
[assembly:AssemblyDescription("Aria's Creations Common Code Library")]
|
||||
[assembly:AssemblyVersion("1.3.0.1")]
|
||||
[assembly:AssemblyVersion("1.3.0.2")]
|
||||
|
||||
namespace LibAC
|
||||
{
|
||||
public class LibAC
|
||||
{
|
||||
public static readonly string BUILD_DATE = "121624";
|
||||
public static readonly string BUILD_TIME = "2121";
|
||||
public static readonly string BUILD_DATE = "121724";
|
||||
public static readonly string BUILD_TIME = "1139";
|
||||
|
||||
public static string VERSION => $"1.3.${BUILD_DATE}.${BUILD_TIME}";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue