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 /// Preset category to install (e.g. "proxy"). Installs all if omitted.
17 /// Run 'shine shell list' to see available categories.
18 #[arg(value_name = "CATEGORY")]
19 category: Option<String>,
20 /// Replace user-modified managed files, links, and profile integration
21 #[arg(long)]
22 replace_managed: bool,
23 },
24 /// Uninstall shell presets and remove bin symlinks.
25 /// Run 'shine shell list' to see installed categories.
26 Uninstall {
27 /// Preset category to uninstall (e.g. "proxy"). Uninstalls all if omitted.
28 /// Run 'shine shell list' to see installed categories.
29 #[arg(value_name = "CATEGORY")]
30 category: Option<String>,
31 /// Also remove empty managed directories after uninstall
32 #[arg(long)]
33 purge: bool,
34 /// Print what would be removed without making any changes
35 #[arg(long)]
36 dry_run: bool,
37 },
38}