private void ProcessArguments(IOptions options, OptionValue opt, string[] tokens, ref int index) { // loop until an option is found while (++index < tokens.Length) { String str = tokens[index]; // found an Option, not an argument if (options.HasOption(str) && str.StartsWith("-")) { index--; break; } // found a value try { opt.AddValueForProcessing(Util.StripLeadingAndTrailingQuotes(str)); } catch (ApplicationException) { index--; break; } } if (opt.Values == null && !opt.Option.HasOptionalArguments()) { throw new MissingArgumentException(opt.Option); } }
protected void ProcessProperties(IOptions options, IEnumerable <KeyValuePair <string, string> > properties) { if (properties == null) { return; } foreach (KeyValuePair <string, string> option in properties) { if (!cmd.HasOption(option.Key)) { IOption opt = options.GetOption(option.Key); // get the value from the properties instance var value = option.Value; OptionValue optValue = null; if (opt.HasArgument()) { optValue = SafeGetOptionValue(opt); if (optValue.Values == null || !optValue.Values.Any()) { try { optValue.AddValueForProcessing(value); } catch (ApplicationException) { // if we cannot add the value don't worry about it } } } else if (String.Compare(value, "yes", StringComparison.OrdinalIgnoreCase) != 0 && String.Compare(value, "true", StringComparison.OrdinalIgnoreCase) != 0 && String.Compare(value, "1", StringComparison.OrdinalIgnoreCase) != 0) { // if the value is not yes, true or 1 then don't add the // option to the CommandLine break; } cmd.AddOption(optValue); } } }