v / vlib / cli / README.md
65 lines · 54 sloc · 1.79 KB · ef702a6b3b841a6ea311bc9c8cf89f40daf7267f
Raw

Description

cli is a command line option parser, that supports declarative subcommands, each having a separate set of options.

See also the flag module, for a simpler command line option parser, that supports only options.

Example

module main

import os
import cli

fn main() {
    mut app := cli.Command{
        name:        'example-app'
        description: 'example-app'
        execute:     fn (cmd cli.Command) ! {
            println('hello app')
            return
        }
        commands:    [
            cli.Command{
                name:    'sub'
                alias:   's'
                execute: fn (cmd cli.Command) ! {
                    println('hello subcommand')
                    return
                }
            },
        ]
    }
    app.setup()
    app.parse(os.args)
}

Subcommands can set alias to accept a shorter invocation token, for example example-app s.

Help layout

--help is generated automatically. Beyond Usage:, Flags: and Commands: the output picks up extra sections when the relevant Command fields are populated: