ralph/cli/task/args/
lifecycle.rs1use clap::Args;
13
14use crate::cli::queue::QueueShowFormat;
15use crate::cli::task::args::types::TaskStatusArg;
16
17#[derive(Args)]
18#[command(
19 after_long_help = "Examples:\n ralph task show RQ-0001\n ralph task show RQ-0001 --format compact"
20)]
21pub struct TaskShowArgs {
22 #[arg(value_name = "TASK_ID")]
24 pub task_id: String,
25
26 #[arg(long, value_enum, default_value_t = QueueShowFormat::Json)]
28 pub format: QueueShowFormat,
29}
30
31#[derive(Args)]
32pub struct TaskReadyArgs {
33 #[arg(long)]
35 pub note: Option<String>,
36
37 #[arg(value_name = "TASK_ID")]
39 pub task_id: String,
40}
41
42#[derive(Args)]
43pub struct TaskStatusArgs {
44 #[arg(long)]
46 pub note: Option<String>,
47
48 #[arg(value_enum)]
50 pub status: TaskStatusArg,
51
52 #[arg(value_name = "TASK_ID...")]
54 pub task_ids: Vec<String>,
55
56 #[arg(long, value_name = "TAG")]
58 pub tag_filter: Vec<String>,
59}
60
61#[derive(Args)]
62pub struct TaskDoneArgs {
63 #[arg(long)]
65 pub note: Vec<String>,
66
67 #[arg(value_name = "TASK_ID")]
69 pub task_id: String,
70}
71
72#[derive(Args)]
73#[command(
74 about = "Mark a task as started (sets started_at and moves to doing)",
75 after_long_help = "Examples:\n ralph task start RQ-0001\n ralph task start --reset RQ-0001"
76)]
77pub struct TaskStartArgs {
78 #[arg(value_name = "TASK_ID")]
80 pub task_id: String,
81
82 #[arg(long)]
84 pub reset: bool,
85}
86
87#[derive(Args)]
88pub struct TaskRejectArgs {
89 #[arg(long)]
91 pub note: Vec<String>,
92
93 #[arg(value_name = "TASK_ID")]
95 pub task_id: String,
96}
97
98#[derive(Args)]
99#[command(
100 after_long_help = "Examples:\n ralph task schedule RQ-0001 '2026-02-01T09:00:00Z'\n ralph task schedule RQ-0001 'tomorrow 9am'\n ralph task schedule RQ-0001 'in 2 hours'\n ralph task schedule RQ-0001 'next monday'\n ralph task schedule RQ-0001 --clear"
101)]
102pub struct TaskScheduleArgs {
103 #[arg(value_name = "TASK_ID")]
105 pub task_id: String,
106
107 #[arg(value_name = "WHEN")]
109 pub when: Option<String>,
110
111 #[arg(long, conflicts_with = "when")]
113 pub clear: bool,
114}