Open ericnewton76 opened 7 years ago
Comment by alastairtree Sunday May 31, 2015 at 12:43 GMT
I have too been looking for this feature. Anyone find/build anything?
Comment by gsscoder Saturday Jun 06, 2015 at 17:15 GMT
Happy you like it... I'm recently back to work on the project.
When 2.0 swirch to beta, a lot is planned. I was thinking to something similar too...
Maybe adding a form of post-value processing.
Regards.
Il domenica 31 maggio 2015, alastairtree notifications@github.com ha scritto:
I have too been looking for this feature. Anyone find/build anything?
— Reply to this email directly or view it on GitHub https://github.com/gsscoder/commandline/issues/122#issuecomment-107173091 .
Giacomo Stelluti Scala _Information Technology _Consultant
I'm really waiting for this.
Hello
Waiting this feature, I think I will use something like the following code.
It's ok for key1=value1 key2="value2" but not for key3="foo""bar"
Do you have something better to propose ?
Thanks for advance. Sybaris
```
[Option("Dico", HelpText = "Test")]
public IEnumerable
public Dictionary<string, string> GetDico()
{
const string KEY_VALUE1 = @"(\w+)\=(\w+)";
const string KEY_VALUE2 = @"(\w+)\=\""([.|\""]+)\""";
Dictionary<string, string> result = new Dictionary<string, string>();
foreach (var item in Dico)
{
bool matchKeyValue1 = Regex.IsMatch(item,KEY_VALUE1);
bool matchKeyValue2 = Regex.IsMatch(item, KEY_VALUE2);
if (!(matchKeyValue1 || matchKeyValue1))
throw new Exception($"Parameter {item} does not match the requirements.");
string regexElected = matchKeyValue2 ? KEY_VALUE2 : matchKeyValue1 ? KEY_VALUE1 : "";
Debug.Assert(!string.IsNullOrEmpty(regexElected));
string key = Regex.Match(item, regexElected).Groups[1].Value;
string value = Regex.Match(item, regexElected).Groups[2].Value;
result.Add(key, value);
}
return result;
}
Definitely a feature worth having. I'm currently using environment variables for key-value pairs. It's a bit yuck but it works for my scenario. Would be good to do it properly with this library at some stage.
Is there any update on this?
Issue by mr-miles Wednesday Mar 26, 2014 at 18:36 GMT Originally opened as https://github.com/gsscoder/commandline/issues/122
Is it possible to use the parser to populate key-value pairs?
So something like "myapp.exe -v:a=x -v:b=y -v:c=z" would populate a property v which is a Dictionary<string, string> with (a,x), (b,y), (c,z) values?
I want to use the parser to specify replacements to be made on a text file
Great package by the way!