Skip to content

Commit a0b9270

Browse files
committed
cargo-rail: dx/clarity/cli cleanup
1 parent 09155f4 commit a0b9270

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

src/commands/cli.rs

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ pub enum Commands {
8484
Unify {
8585
/// Action: 'undo' to restore a backup
8686
action: Option<String>,
87-
/// Preview changes without modifying files
87+
/// Dry-run mode: preview changes without modifying files
8888
#[arg(long, short = 'c')]
8989
check: bool,
9090
/// Output format [text, json]
@@ -133,7 +133,7 @@ pub enum Commands {
133133
/// Skip interactive prompts
134134
#[arg(long)]
135135
non_interactive: bool,
136-
/// Preview generated config without writing
136+
/// Dry-run mode: preview generated config without writing
137137
#[arg(long, short = 'c')]
138138
check: bool,
139139
},
@@ -143,14 +143,15 @@ pub enum Commands {
143143
/// Action: 'init' to configure splits, or crate name to split
144144
action: Option<String>,
145145
/// Additional crate name(s) for init
146+
#[arg(conflicts_with = "all")]
146147
crate_names: Vec<String>,
147-
/// Split all configured crates
148-
#[arg(short, long)]
148+
/// Split all configured crates (mutually exclusive with crate names)
149+
#[arg(short, long, conflicts_with = "action")]
149150
all: bool,
150151
/// Override remote repository
151152
#[arg(long)]
152153
remote: Option<String>,
153-
/// Preview changes without executing
154+
/// Dry-run mode: preview changes without executing
154155
#[arg(long, short = 'c')]
155156
check: bool,
156157
/// Output format [text, json]
@@ -160,9 +161,10 @@ pub enum Commands {
160161

161162
/// Sync changes between monorepo and split repos
162163
Sync {
163-
/// Crate name to sync
164+
/// Crate name to sync (mutually exclusive with --all)
165+
#[arg(conflicts_with = "all")]
164166
crate_name: Option<String>,
165-
/// Sync all configured crates
167+
/// Sync all configured crates (mutually exclusive with crate name)
166168
#[arg(short, long)]
167169
all: bool,
168170
/// Override remote repository
@@ -180,7 +182,7 @@ pub enum Commands {
180182
/// Allow direct commits to protected branches
181183
#[arg(long)]
182184
no_protected_branches: bool,
183-
/// Preview changes without executing
185+
/// Dry-run mode: preview changes without executing
184186
#[arg(long, short = 'c')]
185187
check: bool,
186188
/// Output format [text, json]
@@ -192,15 +194,16 @@ pub enum Commands {
192194
Release {
193195
/// Action: 'init' to configure release settings
194196
action: Option<String>,
195-
/// Crate name(s) to release
197+
/// Crate name(s) to release (mutually exclusive with --all)
198+
#[arg(conflicts_with = "all")]
196199
crate_names: Vec<String>,
197-
/// Release all workspace crates
198-
#[arg(short, long)]
200+
/// Release all workspace crates (mutually exclusive with crate names)
201+
#[arg(short, long, conflicts_with = "action")]
199202
all: bool,
200203
/// Version bump [major, minor, patch, or "x.y.z"]
201204
#[arg(long, default_value = "patch")]
202205
bump: String,
203-
/// Preview release plan without executing
206+
/// Dry-run mode: preview release plan without executing
204207
#[arg(long, short = 'c')]
205208
check: bool,
206209
/// Skip publishing to crates.io
@@ -216,9 +219,10 @@ pub enum Commands {
216219

217220
/// Validate release readiness
218221
Check {
219-
/// Crate name(s) to check
222+
/// Crate name(s) to check (mutually exclusive with --all)
223+
#[arg(conflicts_with = "all")]
220224
crate_names: Vec<String>,
221-
/// Check all workspace crates
225+
/// Check all workspace crates (mutually exclusive with crate names)
222226
#[arg(short, long)]
223227
all: bool,
224228
/// Output format [text, json]
@@ -237,7 +241,7 @@ pub enum Commands {
237241
/// Clean generated reports
238242
#[arg(long)]
239243
reports: bool,
240-
/// Preview what would be cleaned
244+
/// Dry-run mode: preview what would be cleaned
241245
#[arg(long, short = 'c')]
242246
check: bool,
243247
},

0 commit comments

Comments
 (0)