When a command has required arguments and help defined, it is not possible to get help without also specifying the required arguments at the command line. This is not an expected behaviour in my opinion.
# test.cr
require "admiral"
class TestCommand < Admiral::Command
define_help description: "does foobar"
define_argument foo : String, required: true
define_argument bar : String, required: true
def run
end
end
TestCommand.run
$ ./crystal build test.cr
$ ./test --help
Missing required attribute: <foo>
$ ./test one --help
Missing required attribute: <bar>
$ ./test one two --help
Usage:
./test [flags...] <foo> <bar> [arg...]
does foobar
Flags:
--help # Displays help for the current command.
Arguments:
foo (required)
bar (required)
When a command has required arguments and help defined, it is not possible to get help without also specifying the required arguments at the command line. This is not an expected behaviour in my opinion.