Skip to main content

ralph/cli/task/args/
mutate.rs

1//! CLI arguments for task mutation transactions.
2//!
3//! Responsibilities:
4//! - Define args for structured task mutation requests.
5//!
6//! Not handled here:
7//! - JSON parsing or queue mutation execution.
8//! - Legacy single-field edit arguments.
9//!
10//! Invariants/assumptions:
11//! - Input is a JSON document that matches `TaskMutationRequest`.
12//! - Missing `--input` means read the JSON request from stdin.
13
14use clap::Args;
15
16#[derive(Args, Clone)]
17pub struct TaskMutateArgs {
18    /// Read the mutation request from a JSON file.
19    ///
20    /// When omitted, Ralph reads the JSON request from stdin.
21    #[arg(long, value_name = "PATH")]
22    pub input: Option<String>,
23
24    /// Preview validation and conflict checks without saving queue changes.
25    #[arg(long)]
26    pub dry_run: bool,
27}