$ mono commands.exe
Use `commands help` for usage.

$ mono commands.exe --help
# HelpCommand.Invoke: arguments=
usage: commands COMMAND [OPTIONS]

Mono.Options.CommandSet sample app.

Global options:
  -v[=VALUE]                 Output verbosity.

Available commands:
        echo                 Echo arguments to the screen
        requires-args        Class-based Command subclass
Commands with spaces are supported:
        has spaces           spaces?!
Nested CommandSets are also supported. They're invoked similarly to commands
with spaces.
        set file type        Does something or other.

$ mono commands.exe help
# HelpCommand.Invoke: arguments=
usage: commands COMMAND [OPTIONS]

Mono.Options.CommandSet sample app.

Global options:
  -v[=VALUE]                 Output verbosity.

Available commands:
        echo                 Echo arguments to the screen
        requires-args        Class-based Command subclass
Commands with spaces are supported:
        has spaces           spaces?!
Nested CommandSets are also supported. They're invoked similarly to commands
with spaces.
        set file type        Does something or other.

$ mono commands.exe help --help
# HelpCommand.Invoke: arguments=--help
Usage: commands COMMAND [OPTIONS]
Use `commands help COMMAND` for help on a specific command.

Available commands:

        echo                 Echo arguments to the screen
        has spaces           spaces?!
        requires-args        Class-based Command subclass
        set file type        Does something or other.
        help                 Show this message and exit

$ mono commands.exe help echo
# HelpCommand.Invoke: arguments=echo
--help

$ mono commands.exe echo --help
--help

$ mono commands.exe echo hello, world
hello, world

$ mono commands.exe requires-args
commands: Missing required argument `--name=NAME`.
commands: Use `commands help requires-args` for details.

$ mono commands.exe help requires-args
# HelpCommand.Invoke: arguments=requires-args
usage: commands requires-args [OPTIONS]

Class-based Command subclass example.
      --name, -n=name        name of person to greet.
      --help, -h, -?         Show this message and exit.

$ mono commands.exe requires-args --help
usage: commands requires-args [OPTIONS]

Class-based Command subclass example.
      --name, -n=name        name of person to greet.
      --help, -h, -?         Show this message and exit.

$ mono commands.exe requires-args -n World
Hello, World!

$ mono commands.exe invalid-command
commands: Unknown command: invalid-command
commands: Use `commands help` for usage.

$ mono commands.exe help invalid-command
# HelpCommand.Invoke: arguments=invalid-command
commands: Unknown command: invalid-command
commands: Use `commands help` for usage.

$ mono commands.exe has spaces
spaces, yo! 

$ mono commands.exe set file type whatever
File type set to: whatever
