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        /// 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}