1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#include <seqan3/argument_parser/all.hpp>
#include <seqan3/std/filesystem>
//![validator_include]
#include <seqan3/argument_parser/validators.hpp>
//![validator_include]
struct cmd_arguments
{
std::filesystem::path file_path{};
std::vector<uint8_t> seasons{};
std::string aggregate_by{"mean"};
bool header_is_set{};
};
cmd_arguments args{};
int main(int argc, char ** argv)
{
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![add_positional_option]
size_t variable{};
parser.add_positional_option(variable, "This is a description.");
//![add_positional_option]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![add_option]
size_t variable{};
parser.add_option(variable, 'n', "my-number", "This is a description.");
//![add_option]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![add_flag]
bool variable{};
parser.add_flag(variable, 'f', "my_flag", "This is a description.");
//![add_flag]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![option_list]
std::vector<std::string> list_variable{};
parser.add_option(list_variable, 'n', "names", "Give me some names.");
//![option_list]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![positional_option_list]
std::string variable{};
std::vector<std::string> list_variable{};
parser.add_positional_option(variable, "Give me a single variable.");
parser.add_positional_option(list_variable, "Give me one or more variables!.");
//![positional_option_list]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![required_option]
std::string required_variable{};
parser.add_option(required_variable, 'n', "name", "I really need a name.", seqan3::option_spec::REQUIRED);
//![required_option]
}
{
seqan3::argument_parser parser{"Example-Parser", argc, argv};
//![input_file_validator]
parser.add_positional_option(args.file_path, "Please provide a tab separated data file.",
seqan3::input_file_validator{{"tsv"}});
//![input_file_validator]
}
}
|