Comments (4)
Thanks. I did a little bit of a hybrid of what you specified. I will still contend that some more gracefull way of handling this would be nice for when there are required parameters such as a check to see if a parameter exists or not such as p.Options.Exists(['v','version', 'foobar'...]).
from fluent-command-line-parser.
Hi @brecko
I currently use
fclp.Setup<bool>('v', "version").Callback(b => PrintVersion());
or
bool showVersion;
fclp.Setup<bool>('v', "version").Callback(b => showVersion = b).SetDefault(false);
if(showVersion){
PrintVersion()
}
from fluent-command-line-parser.
Thanks. I will give it a try. I did everything other than setdefault(false). Not sure it matters, but all my parameters are required so when I perform the parse, it shows I have errors. This is when only -v or --version was used.
UPDATE:
I have the following:
var p = new FluentCommandLineParser {IsCaseSensitive = false};
p.Setup(arg => arg.CalculatorFile)
.As(ApplicationArguments.CalculatorSwitchShort, ApplicationArguments.CalculatorSwitchLong)
.WithDescription("Some description")
.Required();
...
about 5-6 more that are required. help | h | ? is not required
...
var result = p.Parse(args);
if (result.HelpCalled)
return;
if (result.HasErrors)
{
Console.WriteLine(result.ErrorText);
Console.WriteLine("For command line argument help: [-? | -h | --help]\n\n");
Console.WriteLine("Exiting analysis.");
return;
}
So I cannot use either of your suggestions for .
Something that just came to mind is I might need to do yours, test it for version and if so, display it and exit else use what I have now for the rest. But it would be nice, if I didn't have to...
Thanks!!
from fluent-command-line-parser.
SetDefault
ensures that a value is set for that option even if one isn't provided, it just makes it more explicit.
Yeah the result contains errors because your other options have been setup as Required()
.** Not much that can be done about that unfortunately, however I would check help, then version, then for any errors such as:
var p = new FluentCommandLineParser { IsCaseSensitive = false };
p.Setup(arg => arg.ShowVersion)
.As('v', "version")
.SetDefault(false);
var result = p.Parse(args);
if (result.HelpCalled) {
// show help
}
else if(p.Object.ShowVersion) {
// show version
}
else if (result.HasErrors) {
// show errors
}
from fluent-command-line-parser.
Related Issues (20)
- Please find an additional maintainer for this project HOT 6
- Escaping `.` in command line param HOT 1
- Passing multiple parameters with the same name HOT 2
- There should be a ConfigurationProvider HOT 2
- Feature Request: Cross object property binding for parser. HOT 1
- Escaped quote at the end of quoted argument HOT 1
- Question: Use a string from another source to populate arguments? HOT 2
- Support IPAddress HOT 2
- parameter value starts with dash (-) howto ?
- Pass additional parameters into Required() for conditional requirements
- Auto-setup using reflection HOT 1
- Getting parsing exception HOT 4
- Need strong named assembly (again) HOT 1
- Can I help support this project? HOT 2
- Error during parsing datetime parameter is ignored
- URL for project site in the nuget package is incorrect.
- Not compatible with .NET6 HOT 1
- Incorrectly parsed argument if it starts with "/"
- I'd like to take over maintenance of this project
- Support positional arguments that "correspond" to the configured parameters
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluent-command-line-parser.