v/vlib/cli
Turiiya c0fec31bef
cli: fix default flags when their command equivalents are disabled (#21469)
* always replace `\r\n` with `\n`

* fix

* test

* cleanup

* add doc comment
2024-05-08 14:11:40 +03:00
..
testdata cli: fix default flags when their command equivalents are disabled (#21469) 2024-05-08 14:11:40 +03:00
cli_test.v cli: fix default flags when their command equivalents are disabled (#21469) 2024-05-08 14:11:40 +03:00
command.v cli: fix default flags when their command equivalents are disabled (#21469) 2024-05-08 14:11:40 +03:00
command_test.v cli: simplify flag parsing (#21392) 2024-05-01 21:07:25 +03:00
flag.v cli: simplify flag parsing (#21392) 2024-05-01 21:07:25 +03:00
flag_test.v breaking,checker: disallow initializing private struct fields outside structs module (#21183) 2024-04-12 13:53:02 +03:00
help.v cli: cleanup execute functions of default commands / flags like -help and -man (#21470) 2024-05-08 13:47:26 +03:00
help_test.v cli: fix bug that caused help to panic (#11157) 2021-08-12 09:25:28 +03:00
man.v cli: cleanup execute functions of default commands / flags like -help and -man (#21470) 2024-05-08 13:47:26 +03:00
man_test.v cli: add automatic manpage generation with -man (#13911) 2022-04-03 10:12:47 +03:00
README.md doc: update trim_doc_node_description, make module readmes more uniform (#20792) 2024-02-12 12:38:47 +02:00
version.v cli: fix default flags when their command equivalents are disabled (#21469) 2024-05-08 14:11:40 +03:00

Description

cli is a command line option parser, that supports declarative subcommands, each having 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'
				execute: fn (cmd cli.Command) ! {
					println('hello subcommand')
					return
				}
			},
		]
	}
	app.setup()
	app.parse(os.args)
}