0

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)

すべて正常に動作します。

1つのパラメーターをオプションでないようにしたいだけです。私は何を間違っていますか?

これには回避策がありますが、オプションの引数とオプションではない引数を 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)))

ありがとう。

4

1 に答える 1

2

古いバージョンの tools.cli (おそらく v0.1.0) を使用しています。そのバージョンでは、必要なオプションに使用する(required ...)必要があるようです。https://github.com/clojure/tools.cli/tree/a741b23f230123179fc518af772f1c057058f7d2のドキュメントを参照してください。

現在のバージョンの tools.cli では、オプションは常にオプションであり、オプションおよび必須の機能は削除されています。

于 2012-08-24T20:15:24.730 に答える