diff --git a/GlaxArguments/ArgumentFetcher.cs b/GlaxArguments/ArgumentFetcher.cs index 6436eff..dae9181 100644 --- a/GlaxArguments/ArgumentFetcher.cs +++ b/GlaxArguments/ArgumentFetcher.cs @@ -15,13 +15,12 @@ public class ArgumentFetcher ValidArguments = temp.Concat(new[] { HelpArg }).ToArray(); } - public Dictionary Fetch(string argumentString) + public Dictionary Fetch(string[] args) { Dictionary ret = new(); - string[] parts = argumentString.Split(' '); - for (int i = 0; i < parts.Length; i++) + for (int i = 0; i < args.Length; i++) { - string flag = parts[i]; + string flag = args[i]; if(flag.Length < 1) continue; if (!(flag.StartsWith('-') && flag.Length == 2 || flag.StartsWith("--"))) @@ -37,13 +36,13 @@ public class ArgumentFetcher } int lastParameterIndex = i + argument.ParameterCount; - if(lastParameterIndex >= parts.Length) + if(lastParameterIndex >= args.Length) throw new ArgumentException($"Not enough Parameters provided for flag {flag}. (Expected {argument.ParameterCount})"); List parameters = new(); for (; i < lastParameterIndex; i++) { - string param = parts[i + 1]; + string param = args[i + 1]; if(param.StartsWith('-')) throw new ArgumentException($"Not enough Parameters provided for flag {flag}. (Expected {argument.ParameterCount})"); if(param.StartsWith('"') && param.EndsWith('"')) @@ -55,4 +54,9 @@ public class ArgumentFetcher } return ret; } + + public Dictionary Fetch(string argumentString) + { + return Fetch(argumentString.Split(' ')); + } } \ No newline at end of file