1use clap::{Parser, ValueEnum};
2
3#[derive(Parser, Debug)]
5#[command(author, version, about, long_about = None)]
6pub struct Cli {
7 #[arg(short, long, default_value = "long")]
9 pub mode: Option<String>,
10
11 #[arg(short, long)]
13 pub theme: Option<String>,
14
15 #[arg(short, long)]
17 pub config: Option<String>,
18
19 #[arg(long)]
21 pub no_logo: bool,
22
23 #[arg(long)]
25 pub ascii_only: bool,
26
27 #[arg(long)]
29 pub short: bool,
30
31 #[arg(long)]
33 pub long: bool,
34
35 #[arg(long)]
37 pub list_themes: bool,
38
39 #[arg(long)]
41 pub print_theme_template: bool,
42
43 #[arg(long)]
45 pub list_distros: bool,
46
47 #[arg(long)]
49 pub print_logos: bool,
50
51 #[arg(long)]
53 pub generate_config: bool,
54
55 #[arg(long)]
57 pub write_config: bool,
58
59 #[arg(trailing_var_arg = true, num_args = 0..)]
61 pub write_config_path: Vec<String>,
62
63 #[arg(long)]
65 pub merge_config: bool,
66
67 #[arg(long)]
69 pub fields: Option<String>,
70
71 #[arg(long, value_enum)]
73 pub completions: Option<CompletionShell>,
74}
75
76#[derive(ValueEnum, Clone, Debug)]
78pub enum CompletionShell {
79 Bash,
80 Elvish,
81 Fish,
82 #[clap(name = "power-shell")]
83 PowerShell,
84 Zsh,
85 Nushell,
86}