[TCLI-3] Change contract to provide access to banner on parse error Created: 09/Feb/13 Updated: 28/Jun/16 Resolved: 15/Dec/13
|Reporter:||Philip Aston||Assignee:||Sung Pae|
If a user provides an invalid option, most applications would want to display the banner.
tools.cli throws an Exception with minimal information, and (banner-for) is marked private.
The exception could be replaced with one that provides access to the banner, but I think it would be better (easier to use, more idiomatic?) to change the contract so that the banner is always returned. Given the exception string is also useful, perhaps change cli to return a map with keys [:options :extra-args :banner :parse-failure]?
|Comment by Gunnar Völkel [ 08/Mar/13 4:19 AM ]|
I agree with the reporter. Throwing an exception for invalid arguments ("[...] is not a valid argument") is not appropriate since you usually want to display that error message along with the banner.
|Comment by Sung Pae [ 10/Dec/13 1:26 PM ]|
In the upcoming 0.3.0 release, parse-opts does not throw exceptions on parse errors, but collects them into an errors vector which the caller checks to see if parsing was successful.
parse-opts does have a :post assertion on the uniqueness of :id, :short-opt, and :long-opt entries in the compiled option maps, but these errors are meant to help development, and may even be switched off by disabling assert at compile time.
|Comment by Sung Pae [ 15/Dec/13 3:15 PM ]|
I am going to close this issue as it has been addressed by 0.3.0.