我正在尝试在 Clap 和 YAML 的帮助下用 Rust 编写 CLI。我的输入将需要一个参数(文件路径)和一个标志-s
、-r
或-g
. 标志-s
and-r
将需要两个标志-t
and之一-m
,但标志与and-g
冲突。我正在尝试对其进行配置,以便在选择or时不会被接受,但它不允许将or与or一起使用。-t
-m
-g
-t
-m
-s
-r
-t
-m
如何配置我的 YAML 文件,以便我可以禁止但允许(并要求)-gt
使用or和or ?-gm
-t
-m
-s
-r
cli.yml:
name: mfm
version: "0.1.0"
author: Jonathan Marple <elpramnoj@gmail.com>
about: Media file manager written in rust.
args:
- INPUT:
help: Sets the input file(s) to use
required: true
- scrape:
short: s
long: scrape
help: Scrape information on show/movie
requires:
- DB
- rename:
short: r
long: rename
help: Rename file(s)
requires:
- DB
- generate:
short: g
long: generate
help: Generate folders for file(s)
conflicts_with:
- tvdb
- tmdb
- tvdb:
short: t
long: tvdb
help: Pull from tvdb
- tmdb:
short: m
long: tmdb
help: Pull from tmdb
groups:
- CMD:
required: true
args:
- scrape
- rename
- generate
- DB:
args:
- tvdb
- tmdb
我也尝试过标记DB
,conflicts_with:
但无论如何它的行为方式相同。