Skip to main content

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}