cli

Declarative command-line argument parsing.

Import

import cli

Functions

cli.flag(name: str, help?: str)

Declare a boolean flag, e.g. --verbose. Absent flags are false.

cli.option(name: str, default?: any, help?: str)

Declare a value option, e.g. --port 8080. Can specify a default value.

cli.positional(name: str, help?: str)

Declare a required positional argument.

cli.parse(args: [str]) -> map

Parse the given argument array against the declared spec. Returns a map of {flags, options, positional}.

Examples

import cli

cli.flag("verbose")
cli.flag("dry-run")
cli.option("port", 8080, "port to listen on")
cli.option("output", "out.txt", "output file")
cli.positional("input")

let opts = cli.parse(argv)

if opts.flags["verbose"] {
    println("verbose mode")
}

let port = opts.options["port"]
let input = opts.positional[0]
println("port={port}, input={input}")