eska_presentation/arguments/vcs/
status.rs1use crate::localization::Localizer;
4use clap::{Args, ValueEnum};
5
6#[derive(Debug, Args)]
7pub struct StatusArgs {
8 #[arg(long, value_enum, default_value_t = OutputFormat::Human)]
9 pub format: OutputFormat,
10
11 #[arg(short = 'p', long)]
12 pub project: Vec<String>,
13
14 #[arg(long)]
15 pub workspace: bool,
16
17 #[arg(short, long, action = clap::ArgAction::Help)]
18 pub help: Option<bool>,
19}
20
21#[derive(Clone, Copy, Debug, Default, ValueEnum)]
22pub enum OutputFormat {
23 #[default]
24 Human,
25 Json,
26}
27
28#[must_use]
30pub fn localize(command: clap::Command, localizer: &Localizer) -> clap::Command {
31 command
32 .about(localizer.text("status-about"))
33 .override_usage(localizer.text("status-usage"))
34 .mut_arg("format", |argument| {
35 argument
36 .help(localizer.text("status-format-help"))
37 .value_name(localizer.text("status-format-value"))
38 })
39 .mut_arg("project", |argument| {
40 argument
41 .help(localizer.text("status-project-help"))
42 .value_name(localizer.text("status-project-value"))
43 })
44 .mut_arg("workspace", |argument| {
45 argument.help(localizer.text("status-workspace-help"))
46 })
47 .mut_arg("help", |argument| argument.help(localizer.text("cli-help")))
48}