summaryrefslogtreecommitdiff
path: root/cli
AgeCommit message (Collapse)AuthorFilesLines
2021-08-09Fix doc/buildfileadhoc-recipeKaren Arutyunov1-2/+2
2021-08-09ReviewBoris Kolpackov3-32/+27
2021-08-09Use ad hoc recipe for parsing code and documentation generatingKaren Arutyunov7-126/+185
2021-08-03Add support for tracking argument/option positionBoris Kolpackov3-42/+175
The scanner interface now provides the position() function that returns a monotonically-increasing number which, if stored, can later be used to determine the relative position of the arguments. There is also now a parser implementation for std::pair<T, std::size_t> which parses the value T into the first half of the pair and stores the option position in the second half. Together, this can be used to establish the relative position of different options, for example: class options { std::vector<std::pair<std::uint64_t, std::size>> --config-id; std::vector<std::pair<std::string, std::size>> --config-name; }; cli::argv_scanner scan (argc, argv); options ops (scan); // Iterate over --config-id and --config-name options in the order // specified by the user. // auto ii (ops.config_id ().begin ()); auto ni (ops.config_name ().begin ()); for (size_t i (0), n (scan.position ()); i != n; ++i) { if (ii != ops.config_id ().end () && ii->second == i) { // Handle *ii. ++ii; } if (ni != ops.config_name ().end () && ni->second == i) { // Handle *ni. ++ni; } }
2021-07-22Change manifest builds value from all to hostBoris Kolpackov1-1/+1
2021-02-24Various cleanupsKaren Arutyunov4-10/+3
2021-02-24Adapt to cutl/ to libcutl/ renameKaren Arutyunov13-20/+20
2020-12-08Regenerate options parsing codeKaren Arutyunov2-139/+155
2020-12-08Complete options file path using referencing file path as baseKaren Arutyunov1-2/+17
2020-10-05Add missing spaces in generated codeKaren Arutyunov1-2/+2
2020-09-12Fix generated set and map parsers so that comparison predicate can also be ↵Karen Arutyunov1-13/+13
specified
2020-08-01Use legal{} target type for legal documentation (LICENSE, AUTHORS, etc)Karen Arutyunov1-1/+1
2020-08-01Disable success build emailsKaren Arutyunov1-1/+1
2020-07-21Bump build2 version requirement to 0.13.0Boris Kolpackov1-2/+2
2020-07-21Change version to 1.2.0-b.7.zBoris Kolpackov1-1/+1
2020-07-18Release version 1.2.0-b.7v1.2.0-b.7Boris Kolpackov1-1/+1
2020-06-19Fix misleading indentationBoris Kolpackov1-2/+2
2020-06-09Add name to metadata for cli executableBoris Kolpackov2-0/+2
2020-06-09Add metadata variable prefix for cli executableKaren Arutyunov2-2/+2
2020-05-28Get rid of trailing spaces in generated codeBoris Kolpackov3-90/+98
2020-04-29Add --suppress-undocumented for usage and regenerateBoris Kolpackov2-3/+1
2020-04-27Update metadata protocolBoris Kolpackov7-15/+49
2020-04-27Separate tests and examples into individual packagesKaren Arutyunov97-52/+3031
Also make cli module to be explicitly enabled via the config.cli configuration variable.
2020-04-21Add metadataBoris Kolpackov7-6/+67
2020-03-27Regenerate options parsing codeBoris Kolpackov2-6/+55
2020-03-27Add peek_file() and peek_line() functions to argv_file_scannerKaren Arutyunov2-7/+55
2020-02-13Use copyright extracted from LICENSE file for printing utility versionKaren Arutyunov2-1/+11
2020-02-13Drop copyright notice from source codeKaren Arutyunov66-66/+0
2019-08-14Fix merge() function generated for map parserKaren Arutyunov1-1/+4
2019-07-27Add support for direct file loading with argv_file_scannerBoris Kolpackov6-2/+86
2019-07-27Add support for option merging (--generate-merge)Boris Kolpackov11-162/+337
2019-05-24Adapt version.hxx.in to increasing standard version major, minor, and patch ↵Karen Arutyunov1-15/+14
max values up to 99999
2019-04-04Remove redundant space in option descriptionKaren Arutyunov1-1/+1
2019-04-02Handle combined option values in argv_file_scannerBoris Kolpackov3-92/+140
Turns out we cannot just pass them along as combined because of quoting. While at it, also add support for quoting non-option arguments.
2019-03-05Align with latest bdep-newKaren Arutyunov1-11/+14
2019-01-16Update copyright yearKaren Arutyunov66-67/+67
2018-11-20Escape more line-leading characters in man outputBoris Kolpackov1-3/+12
Failed that, groff will treat them as macros/special.
2018-09-10Replace libu with libue in buildfilesKaren Arutyunov1-4/+4
2018-09-03Recognize \\ escape sequence in pre-formatted fragmentsBoris Kolpackov1-13/+32
Without this there were no way to correctly represent this sequence: \ \\\" \
2018-08-02Allow lists inside notes for HTML outputBoris Kolpackov1-1/+5
2018-07-07Add optional message to invalid_option exceptionBoris Kolpackov6-7/+40
2018-05-23Update for use with bdepBoris Kolpackov1-0/+5
2018-05-23Fix ubsan errorsBoris Kolpackov1-4/+17
2018-05-21Update copyright yearKaren Arutyunov66-67/+67
2018-05-19Get rid of doc{version} and types for testscript and manifest in buildfilesKaren Arutyunov1-1/+1
2018-04-16Add support for note formatting in plain text outputBoris Kolpackov4-23/+61
2018-04-12Change "inline block" term to "span" not to confuse with "block block"Boris Kolpackov1-108/+108
2018-04-12Add support for note block and spanBoris Kolpackov1-5/+87
For example: \N|This is a block note. It may consist of multiple paragraphs.| And this is \N{an inline note} that is inside a paragraph. Notes are currently only support for the html output.
2018-04-01Implement combined flags (-xyz vs -x -y -z) and values (--foo=bar) supportBoris Kolpackov6-61/+414
Both are enabled by default but can be disable with --no-combined-flags and --no-combined-values options.
2018-03-24Return bool from parse() indicating whether anything has been parsedBoris Kolpackov4-20/+51