1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/cli
2023-08-03 21:06:36 +03:00
..
cli_test.v cli: fix a panic and an infinite loop, when command flag descriptions have multiple lines (#17981) 2023-04-18 12:37:26 +03:00
command_test.v all: change optional to result in most of the libraries (#16123) 2022-10-20 22:14:33 +03:00
command.v all: do not allow uninitialized function pointers 2023-08-03 21:06:36 +03:00
flag_test.v
flag.v checker: remove c.pref.is_test exception for calling private methods in _other_ modules (#16872) 2023-01-05 15:41:18 +02:00
help_test.v
help.v cli: fix a panic and an infinite loop, when command flag descriptions have multiple lines (#17981) 2023-04-18 12:37:26 +03:00
man_test.v
man.v vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +03:00
README.md all: change optional to result in most of the libraries (#16123) 2022-10-20 22:14:33 +03:00
version.v vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +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)
}