Comments (3)
Please check if you get any compilation warnings. It is possible that the
attribute is obsolete. If it is - the warning message will give you the new
attribute names instead.
On May 4, 2013 8:17 AM, "GiscardBiamby" [email protected] wrote:
I'm probably doing something wrong, but it seems like the Parameter
attribute doesn't work. I made a test app with a Description property on
some parameters, but the help text doesn't show the descriptions, it just
shows the parameter Type. Also, I set a default on one of the parameters
(int savedSearchId should default to 1), but the value comes in as zero.This is what I get at the command line:
C:\projects\gbwork\CampaignEngine\src\hydra\bin\Debug>hydrafoo|f: Foo() description...
deletefromsavedsearch|d
/savedsearchid : (Int32)
/savedsearchname : (String)Here is the code I'm using, it's in a .NET 4.5 Console App, and I added
CLAP from nuget:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CLAP;namespace hydra {
public class hydraConsole {
public static void Main(string[] args) {
Parser.Run(args);
}
}public class hydraVerbs {
[Verb(Description="Foo() description...")] public static void Foo() { Console.WriteLine("Foo!"); } [Verb] public static void DeleteFromSavedSearch( [CLAP.Parameter(Description="Name of saved search with the users to delete")] string savedSearchName , [CLAP.Parameter(Default = 1, Description = "Id of the saved search with the users to delete")] int savedSearchId ) { Console.WriteLine("DeleteFromSavedSearch(savedSearchName: {0}, savedSearchId: {1}) !", savedSearchName, savedSearchId); } [Empty, Help] public static void Help(string help) { // this is an empty handler that prints // the automatic help string to the console. Console.WriteLine(help); }
}
}
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/21
.
from clap.
Thanks, that fixed it. I think the documentation needs updating. BTW, I've tried several other command line parser libs the past couple of days and so far this is the best, and requires the least amount of boiler plate code to use. Thanks a lot for creating and maintaining it!
Here's what I changed the code to to get default values and auto help text working:
namespace hydra {
public class hydraConsole {
public static void Main(string[] args) {
Parser.Run<hydraVerbs>(args);
}
}
public class hydraVerbs {
[Verb(Description = "Foo() description...")]
public static void Foo([DefaultValue(22)] int height) {
Console.WriteLine("Foo(height: {0})", height);
}
[Verb]
public static void DeleteContacts(
[Description("Name of saved search with the users to delete")]
string savedSearchName
, [DefaultValue(1), Description("Id of the saved search with the users to delete")]
int savedSearchId
) {
Console.WriteLine("DeleteContacts(savedSearchName: {0}, savedSearchId: {1}) !", savedSearchName, savedSearchId);
}
[Empty, Help(Aliases = "?,help,h")]
public static void Help(string help) {
Console.WriteLine(help);
}
}
}
from clap.
Cheers!
BTW, try RunConsole instead of Run. It gives you some built-in stuff. I
think the doc says something about it. Its been a long time since I updated
the docs.
On May 4, 2013 9:07 PM, "GiscardBiamby" [email protected] wrote:
Thanks, that fixed it. I think the documentation needs updating. BTW, I've
tried several other command line parser libs the past couple of days and so
far this is the best, and requires the least amount of boiler plate code to
use. Thanks a lot for creating and maintaining it!Here's what I changed the code to to get default values and auto help text
working:namespace hydra {
public class hydraConsole {
public static void Main(string[] args) {
Parser.Run(args);
}
}public class hydraVerbs { [Verb(Description = "Foo() description...")] public static void Foo([DefaultValue(22)] int height) { Console.WriteLine("Foo(height: {0})", height); } [Verb] public static void DeleteContacts( [Description("Name of saved search with the users to delete")] string savedSearchName , [DefaultValue(1), Description("Id of the saved search with the users to delete")] int savedSearchId ) { Console.WriteLine("DeleteContacts(savedSearchName: {0}, savedSearchId: {1}) !", savedSearchName, savedSearchId); } [Empty, Help(Aliases = "?,help,h")] public static void Help(string help) { Console.WriteLine(help); } }
}
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/21#issuecomment-17445573
.
from clap.
Related Issues (20)
- Multiple apps and help - how to call? HOT 4
- Merge #24 break when an exception is not serializable HOT 2
- Allow sequence of Verbs HOT 2
- Allow [DirectoryExists], [FileExists], [PathExists] to be applied to global parameters HOT 3
- Help text of parameters not displayed HOT 3
- Error attribute is ignored when RunConsole is used HOT 2
- .pdb file is included in nuget package HOT 4
- Required property on ParameterAttribute not working HOT 1
- Remove Windows.Forms Dependency HOT 3
- Strong name assemblies HOT 3
- Help isn't being shown HOT 2
- Correctly bubbling exit-codes HOT 2
- couldn't make it work HOT 2
- Add support for Argument Models HOT 3
- Feature Request: Interactive REPL shell support HOT 1
- Simpler scenarios support HOT 1
- Create base exception class for all CLAP exceptions HOT 2
- Parameter Help format HOT 1
- [PreVerbExecution] method not called for [Empty] verb
- How can I create such an awesome website? HOT 1
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 clap.