Provided by: libbg-dev_2.04+dfsg-6.1_amd64 bug

NAME

       cli-generate - Generate source and documentation from CLI descriptions

SYNOPSIS

       cli-generate [ -c | -h | -m | -w ] FILENAME.cli

DESCRIPTION

   Operation
       cli-generate  reads in a CLI (command line interface) description file, parses it into its
       various sections, and prints out one of a set of output files.   In  typical  usage,  that
       output would be directed to a file and later compiled or included in other sources.

       The  CLI file (named PROGRAM.cli) is divided into two parts, a header (formatted much like
       a standard mail header) and a series of sections.  Headers and sections other  than  those
       specified below are ignored.  All headers and sections are optional.

   File Format
       file = header "\n" *section

       header = *(header-line "\n")

       header-line = header-field ":" whitespace value

       whitespace = *(SPACE / TAB)

       section = "[" name "]" "\n" lines

       lines = *( line "\n" )

   Headers
       Description:
              A one-line description of what the program does.

       Include:
              Add  C  statements  to #include the given source file.  Must be formatted as either
              <file> or file

       Min:   The minimum number of allowed non-option arguments.  Defaults to 0.

       Max:   The  maximum  number  of  allowed  non-option  arguments.   Negative  values   mean
              unlimited.  Defaults to -1.

       Show-Pid:
              Set  to  non-zero  if  the  resulting  program is to show its PID with every output
              message.  Defaults to 0.

       Usage: A one-line description of the intended usage.  Defaults to empty.

   Section Names
       [prefix]
              The text in this  section  is  shown  in  the  command  usage  before  the  options
              description.

       [options]
              The list of options this program accepts.  See below for their format.

       [suffix]
              The  text  in  this  section  is  shown  in  the  command  usage  after the options
              description.

       [description]

       [return value]

       [errors]

       [examples]

       [environment]

       [files]

       [see also]

       [notes]

       [caveats]

       [diagnostics]

       [bugs]

       [restrictions]

       [author]

       [history]
              These sections are formatted and copied into the man page in the standard order.

   Options Format
       options = *(option / separator)

       option = option1 "\n" option2 "\n" *(line "\n")

       option1 = [shortopt] [longopt] type ["=" flag-value] variable ["=" init]

       option2 = helpstr ["=" default]

       separator = "-- " text "\n"

       shortopt = "-" character

       longopt = "--" word

       type = "FLAG" / "COUNTER" / "INTEGER" / "UINTEGER" / "STRING" / "STRINGLIST" / "FUNCTION"

       If not specified, flag-value and init are 0, and default is empty.

   Formatting
       Except for [prefix], [options], and [suffix],  all  of  the  sections  support  formatting
       instructions similar to that of TeXinfo (but greatly simplified).

       @strong{text}
              Use "strong" (bold) text.

       @command{text}
              Indicate the name of a command.

       @option{text}
              Indicate a command-line option.

       @emph{text}
              Use "emphatic" (italicized) text.

       @var{text}
              Indicate a metasyntactic variable.

       @env{text}
              Indicate an environment variable.

       @file{text}
              Indicate the name of a file.

       @code{text}
              Indicate text that is a literal example of a piece of a program.

       @samp{text}
              Indicate text that is a literal example of a sequence of characters.

       @example

       @end example
              The text between these two tags is indented.

       @verbatim

       @end verbatim
              Everything between these two tags is passed as-is (verbatim) to the output.

       @table @format

       @end table
              Mark up a two-column table, or "definition list".

       @item paragraph
              Add  an item to a table.  The @item starts a paragraph that will be the actual list
              entry.  Any subsequent paragraphs will be typeset seperately.

OPTIONS

       -c     Output C source code.

       -h     Output C header file.

       -m     Output a UNIX man page.

       -w     Output HTML (web) markup.

EXAMPLES

       Here is a sample CLI file, containing many of the described elements.

       Min: 1
       Max: 1
       Usage: PATH
       Description: Create a file.
       Show-Pid: 0
       Include: <stdio.h>

       [prefix]
       If the given PATH is a directory, it is suffixed with another name.

       [description]
       @program generates a new random file from a variety of sources including
       @command{ls} and @command{ps} output.

       If the given @option{PATH} is a directory, it is suffixed with another
       name of my choosing.

       [options]
       -v --verbose FLAG=1 opt_verbose

       -t --type STRING opt_type = "type1"
       The type of the file to generate. = type1
       Possible types for this include @option{type1} and @option{base64}.

AUTHOR

       Bruce Guenter <bruce@untroubled.org>

                                                                                  cli-generate(1)