X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=README;h=f13f81aa950de8a8d07345c633643b8b93a8b96d;hb=1d1c9c9090cfa7b9f32f4ebdca9fa330a78bca46;hp=cb2c84fe1fa129c03a1e2e1ec894623a3658bf39;hpb=a62cd661611b4c90b5ebe70f6f466f04a7f98684;p=command.git diff --git a/README b/README index cb2c84f..f13f81a 100644 --- a/README +++ b/README @@ -2,12 +2,14 @@ C++ library for handling command line arguments. +[![Build Status](https://travis-ci.org/quayle/command.svg?branch=master)](https://travis-ci.org/quayle/command) + ## Installation ### debian package - $ wget https://github.com/quayle/command/releases/download/v0.2.1-deb/command_0.2.1_all.deb - $ sudo dpkg -i command_0.2.1_all.deb + $ wget https://github.com/quayle/command/releases/download/v0.3-deb/command_0.3_all.deb + $ sudo dpkg -i command_0.3_all.deb ### from sources @@ -30,21 +32,42 @@ As this is header-only library, you don't need any additional steps. example.cpp: #include + #include #include #include + #include using namespace command; + class MyClass { + std::string _value = "Default"; + public: + void setValue(std::string value) { + this->_value = value; + } + std::string getValue() { + return std::string("Value from MyClass: ") + this->_value; + } + }; + int main(int argc, char *argv[]) { + MyClass myClass; try { Command command(argc, argv, { - new Option("-h", "Help", [](void) { std::cout << "Help information\n"; }) + new Option("-h", "Help", [](void) { + std::cout << "Help information\n"; + }), + new Argument("Value for MyClass", + std::bind(&MyClass::setValue, &myClass, std::placeholders::_1) + ) }); } catch(const std::exception & e) { return 1; } + std::cout << myClass.getValue() << std::endl; + return 0; } @@ -53,6 +76,14 @@ Now program can be compiled & run using following commands: $ g++ -std=c++11 example.cpp $ ./a.out -h Help information + Value from MyClass: Default + + $ ./a.out someArg + Value from MyClass: someArg + + $ ./a.out someArg -h + Help information + Value from MyClass: someArg ### Possible classes to use: @@ -91,6 +122,7 @@ separated by given separator. For each value passed function is invoked: ) More complex example: + (...) void argument_function(bool a) { std::cout << "Argument: " << a << std::endl; @@ -119,7 +151,9 @@ More complex example: Above code allows us to: -Parameters wrapped in Required class, have validator which checks if argument +Parameters wrapped in Required class, have validator which checks if argument is +passed: + $ ./a.out *Input values* is required @@ -136,6 +170,7 @@ Parameters wrapped in Required class, have validator which checks if argument Option: f failed value conversion to the required type For MultiValue Parameters each value is passed to the given function: + $ ./a.out 1-0-1 Argument: 1 Argument: 0