用于解析嵌套命令行参数的 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,但它不受支持。
是否有现成的解决方案?
我认为 subcommands in Argu 3.0 实际上正是您所要求的。
该示例(来自文档,已删除帮助)定义了一个 git
命令,可用作 git clean
或 git 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>
我有一个应用 运行 具有指定参数的任务。一次 运行 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,但它不受支持。
是否有现成的解决方案?
我认为 subcommands in Argu 3.0 实际上正是您所要求的。
该示例(来自文档,已删除帮助)定义了一个 git
命令,可用作 git clean
或 git 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>