Giter VIP home page Giter VIP logo

Comments (3)

adrianaisemberg avatar adrianaisemberg commented on July 17, 2024

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>hydra

foo|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.

GiscardBiamby avatar GiscardBiamby commented on July 17, 2024

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.

adrianaisemberg avatar adrianaisemberg commented on July 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.