cli/commands/shell.rs
1use clap::Subcommand;
2
3#[derive(Subcommand, Debug)]
4pub enum ShellCommands {
5 /// List available shell preset categories and their scripts
6 List,
7 /// Show detailed information about a shell preset category or command
8 Info {
9 /// Category, command, or category/command to inspect
10 #[arg(value_name = "TARGET")]
11 target: String,
12 },
13 /// Install shell presets and create bin symlinks.
14 /// Run 'shine shell list' to see available categories.
15 Install {
16 /// Category or category/command to install (e.g. "proxy" or "utils/shine-env-export"). Installs all if omitted.
17 /// Run 'shine shell list' to see available categories.
18 #[arg(value_name = "TARGET")]
19 target: Option<String>,
20 /// Print what would be linked without making any changes
21 #[arg(long)]
22 dry_run: bool,
23 /// Replace user-modified managed files, links, and profile integration
24 #[arg(long)]
25 replace_managed: bool,
26 },
27 /// Uninstall shell presets and remove bin symlinks.
28 /// Run 'shine shell list' to see installed categories.
29 Uninstall {
30 /// Category or category/command to uninstall. Uninstalls all if omitted.
31 /// Run 'shine shell list' to see installed categories.
32 #[arg(value_name = "TARGET")]
33 target: Option<String>,
34 /// Also remove empty managed directories after uninstall
35 #[arg(long)]
36 purge: bool,
37 /// Print what would be removed without making any changes
38 #[arg(long)]
39 dry_run: bool,
40 },
41}