bouzuya.hatenablog.com

ぼうずやのにっき

bouzuya/yzrh 進捗 Array String 対応

bouzuya/yzrh の進捗。

コマンドライン解釈部分で Array String を使えるようにした。これで複数回のオプション指定ができる。昨日も同じことを書いている (2018-12-10) けど途中だった。

let
  defs =
    { s: stringOption "str" (Just 's') "<STRING>" "string option" "default"
    , b: booleanOption "bool" (Just 'b') "boolean option"
    , m: maybeStringOption "maybe" (Just 'm') "<MAYBE>" "maybe option" (Just "maybe default")
    , a: arrayStringOption "array" (Just 'a') ["<A1>", "<A2>"] "array option" ["a1", "a2"]
    }
-- ...
Assert.equal
  (Right
    { arguments: []
    , options: { s: "default", b: false, m: Just "maybe default", a: ["Hello", "World"] }
    })
  (parse defs ["-a", "Hello", "-a", "World"])

https://github.com/bouzuya/yzrh/blob/fe459a1ec8112229bce3041d2f16d8f766659dcb/test/Bouzuya/CommandLineOption.purs

もちろん yzrh にこの機能が必要な場面はない。