1use clap::{Parser, Subcommand};
6
7pub mod artifacts;
8pub mod attach;
9pub mod ci;
10pub mod config;
11pub mod convert;
12pub mod edit;
13pub mod export;
14pub mod hooks;
15pub mod import;
16pub mod init;
17pub mod link;
18pub mod list;
19pub mod log;
20pub mod metrics;
21pub mod new;
22pub mod onboard;
23pub mod report;
24pub mod rm;
25pub mod search;
26pub mod show;
27pub mod stats;
28pub mod supersede;
29pub mod sync;
30pub mod templates;
31
32#[cfg(feature = "ai")]
33pub mod ai;
34
35#[cfg(feature = "wiki")]
36pub mod wiki;
37
38#[derive(Parser, Debug)]
43#[command(name = "git-adr")]
44#[command(author, version, about, long_about = None)]
45#[command(propagate_version = true)]
46pub struct Cli {
47 #[command(subcommand)]
49 pub command: Commands,
50}
51
52#[derive(Subcommand, Debug)]
54pub enum Commands {
55 Init(init::Args),
57
58 #[command(alias = "n")]
60 New(new::Args),
61
62 #[command(alias = "l")]
64 List(list::Args),
65
66 #[command(alias = "s")]
68 Show(show::Args),
69
70 #[command(alias = "e")]
72 Edit(edit::Args),
73
74 Rm(rm::Args),
76
77 Search(search::Args),
79
80 Sync(sync::Args),
82
83 Config(config::Args),
85
86 Link(link::Args),
88
89 Supersede(supersede::Args),
91
92 Log(log::Args),
94
95 Stats(stats::Args),
97
98 Convert(convert::Args),
100
101 Attach(attach::Args),
103
104 Artifacts(artifacts::Args),
106
107 Export(export::Args),
109
110 Import(import::Args),
112
113 Hooks(hooks::Args),
115
116 Ci(ci::Args),
118
119 Templates(templates::Args),
121
122 Report(report::Args),
124
125 Metrics(metrics::Args),
127
128 Onboard(onboard::Args),
130
131 #[cfg(feature = "ai")]
133 Ai(ai::Args),
134
135 #[cfg(feature = "wiki")]
137 Wiki(wiki::Args),
138}