当前 :validate
选项接受一个验证函数和一个字符串错误信息。
我们能否将第二个参数扩展为一个函数,这样您就可以返回一个错误信息,例如 "--foo 应该大于 10,但实际上是 11"
。
我们甚至可以在那里插入 clojure.spec.alpha
或 malli
。
(def cli-options
[["-n" "--number NUM" "A number"
:parse-fn (m/decoder int? mt/string-transformer)
:validate [(fn [input]
(m/validate [:< 100] input))
(fn [input]
(me/humanize (m/explain [:< 100] input)))]]])