使用 tools.cli,我怎样才能创建一个带有可选参数的非可选参数?
我有一个功能
(defn parse-opts
[args]
(cli args
["-f" "--ifn" "input file"]
(optional ["-o" "--outp" ".csv pipe delimited output file"
:default "assess_pro_out.csv"] identity)
(optional ["-d" "--debug" "Debug flag for logging." :default 0
:parse-fn #(Integer. %)])))
编译但产生
Exception in thread "main" clojure.lang.ArityException:
Wrong number of args (2) passed to: PersistentVector
当我在没有参数的情况下运行我的主程序时。
如果这个选项和其他选项一样
(optional ["-f" "--ifn" "input file"] identity)
一切正常。
我只希望一个参数是非可选的。我究竟做错了什么?
我确实有一个解决方法,但我仍然想知道是否可以将可选和非可选参数混合到 cli。
(defn -main
[& args]
(let [opts (parse-opts args)
start-time (str (Date.))
parsed-csv-data (if-not (:ifn opts)
(do
(println "Usage: assess-chk [-f -ifn] input-file-name")
(System/exit -2))
(utl/fetch-csv-data (:ifn opts)))
谢谢。