jawher / mow.cli

A versatile library for building CLI applications in Go
MIT License
872 stars 55 forks source link

Spec is not inferred correctly for multi-value argument #127

Open oakad opened 2 years ago

oakad commented 2 years ago

Let's say I have a command with a multi-value argument of the following sort:

cmdArgs.StringsArgPtr(
    &cmd.args.srcs,
    "SOURCE_PATHS",
    nil,
    "Directories or files to load",
)

The automatically inferred spec for it will (incorrectly) be "something something SOURCE_PATHS". This will incorrectly reject multiple "source path" arguments with an "incorrect usage" error (only a single argument will be allowed).

The correct, working spec can be specified explicitly to fix the issue: "something something SOURCE_PATHS...".

However, it seems that multi-value argument constructor can be made a little smarter to add ellipsis to spec automatically.