Skip to main content

release_kit/cli/
guide.rs

1//! Arguments for `rk guide`.
2
3use clap::Args;
4
5/// Print a runbook with what detection knows filled in, or list them.
6#[derive(Debug, Args)]
7pub struct GuideArgs {
8    /// The runbook to print; omit it and pass --list to see the names.
9    pub name: Option<String>,
10
11    /// List the runbooks instead of printing one.
12    #[arg(long)]
13    pub list: bool,
14
15    /// Select the release driver's lines where the runbook branches;
16    /// defaults to the configured or recorded driver, then to detection
17    /// from the version files.
18    #[arg(long, alias = "tech", value_name = "NAME")]
19    pub technology: Option<String>,
20
21    /// Select the forge's lines where the runbook branches; defaults to
22    /// detection from the git remote.
23    #[arg(long)]
24    pub forge: Option<String>,
25
26    /// The project path substituted for <repo>; defaults to detection from
27    /// the git remote.
28    #[arg(long)]
29    pub repo: Option<String>,
30
31    /// Select the checkout mode's lines where the runbook branches:
32    /// linked-worktree or main-worktree. Defaults to the mode the
33    /// configuration or the landing record states; without either, every
34    /// variant prints with its label.
35    #[arg(long, alias = "workflow", value_name = "MODE")]
36    pub checkout_mode: Option<String>,
37
38    /// Select the release style's lines where the runbook branches: trunk
39    /// or lines. Defaults to the style the configuration or the landing
40    /// record states; without either, every variant prints with its label.
41    #[arg(long, alias = "style", value_name = "STYLE")]
42    pub release_style: Option<String>,
43}