Perinci-Sub-To-CLIDocData

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    Perinci::Sub::To::CLIDocData - From Rinci function metadata, generate
    structure convenient for producing CLI documentation (help/usage/POD)

VERSION
    This document describes version 0.305 of Perinci::Sub::To::CLIDocData
    (from Perl distribution Perinci-Sub-To-CLIDocData), released on
    2022-11-14.

SYNOPSIS
     use Perinci::Sub::To::CLIDocData qw(gen_cli_doc_data_from_meta);
     my $clidocdata = gen_cli_doc_data_from_meta(meta => $meta);

    Sample function metadata ($meta):

     {
       args => {
         bool1 => {
                    cmdline_aliases => { z => { summary => "This is summary for option `-z`" } },
                    schema => "bool",
                    summary => "Another bool option",
                    tags => ["category:cat1"],
                  },
         flag1 => {
                    cmdline_aliases => { f => {} },
                    schema => ["bool", "is", 1],
                    tags => ["category:cat1"],
                  },
         str1  => {
                    pos => 0,
                    req => 1,
                    schema => "str*",
                    summary => "A required option as well as positional argument",
                  },
       },
       examples => [
         {
           argv    => ["a value", "--bool1"],
           summary => "Summary for an example",
           test    => 0,
         },
       ],
       summary => "Function summary",
       v => 1.1,
     }
    Sample result:

     do {
       my $a = [
         200,
         "OK",
         {
           "compact_usage_line" => "[[prog]] [options] <str1>",
           "example_categories" => { Examples => { order => 99 } },
           "examples" => [
             {
               categories   => ["Examples"],
               category     => "Examples",
               cmdline      => "[[prog]] 'a value' --bool1",
               description  => undef,
               example_spec => {
                                 argv    => ["a value", "--bool1"],
                                 summary => "Summary for an example",
                                 test    => 0,
                               },
               summary      => "Summary for an example",
             },
           ],
           "option_categories" => { "Cat1 options" => { order => 50 }, "Main options" => { order => 0 } },
           "opts" => {
             "--bool1" => {
               arg         => "bool1",



( run in 1.270 second using v1.01-cache-2.11-cpan-39bf76dae61 )