繁体   English   中英

用于解析嵌套命令行参数的 F# 库

[英]F# library to parse nested command line arguments

我有一个应用程序正在运行具有指定参数的任务。 它一次运行 1 个任务。

type MagicOptions = {
  Param1: string
  Param2: string
}

type NoMagicOptions = {
  Param3: string
  Param4: string
}

app.exe -task magic -param1 val -param2 val
app.exe -task no-magic -param3 val -param4 val

or it can be:
app.exe magic -param1 val -param2 val
app.exe no-magic -param3 val -param4 val

每当用户指定任务类型时,都需要解析由 Magic/NoMagic 类型描述的精确参数。

我已经尝试过Argu并希望使用DU ,但它不受支持。

有现成的解决方案吗?

我认为Argu 3.0中的子命令实际上正是您所要求的。

该示例(来自文档,已删除帮助)定义了一个git命令,该命令可用作git cleangit commit并为这两个代表提供不同的选项。 选择由 DU 表示:

[<CliPrefix(CliPrefix.Dash)>]
type CleanArgs =
    | D
    | F
    | X

and CommitArgs =
    | Amend
    | [<AltCommandLine("-p")>] Patch
    | [<AltCommandLine("-m")>] Message of msg:string

and GitArgs =
    | Version
    | [<AltCommandLine("-v")>] Verbose
    | [<CliPrefix(CliPrefix.None)>] Clean of ParseResults<CleanArgs>
    | [<CliPrefix(CliPrefix.None)>] Commit of ParseResults<CommitArgs>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM