1use clap::{Parser, Subcommand};
2
3#[derive(Parser)]
4#[command(name = "rs-claude-bar", about = "Track Claude usage", version)]
5pub struct Cli {
6 #[arg(long, global = true)]
8 pub no_cache: bool,
9
10 #[arg(long, global = true)]
12 pub no_save: bool,
13
14 #[command(subcommand)]
15 pub command: Option<Commands>,
16}
17
18#[derive(Subcommand, Clone)]
19pub enum Commands {
20 Info,
22 Help{
24 #[command(subcommand)]
25 command: Option<HelpCommands>,
26 },
27 Prompt,
29 Install,
31 Config {
33 #[command(subcommand)]
34 command: Option<ConfigCommands>,
35 },
36 Blocks{
38 #[command(subcommand)]
39 command: Option<BlocksCommands>,
40 },
41}
42
43#[derive(Subcommand, Clone)]
44pub enum BlocksCommands {
45 #[command(name = "all")]
47 All,
48 #[command(name = "limits")]
50 Limits,
51 #[command(name = "gaps")]
53 Gap,
54}
55
56#[derive(Subcommand, Clone)]
57pub enum HelpCommands {
58 #[command(name = "config")]
60 Config,
61 #[command(name = "prompt")]
63 Prompt,
64 #[command(name = "install")]
66 Install,
67 #[command(name = "blocks")]
69 Blocks,
70}
71
72#[derive(Subcommand, Clone)]
73pub enum ConfigCommands {
74 #[command(name = "claude-path")]
76 ClaudePath,
77 #[command(name = "display")]
79 Display,
80}