Skip to main content

cli/commands/
sys.rs

1use clap::Subcommand;
2
3#[derive(Subcommand, Debug)]
4pub enum SysCommands {
5    /// List available system items
6    List {
7        /// Show items for every supported operating system
8        #[arg(long)]
9        all: bool,
10    },
11    /// Show detailed information about a system item
12    Info {
13        /// System item to inspect
14        #[arg(value_name = "ITEM")]
15        item: String,
16    },
17    /// Show system bootstrap items previously initialized by shine
18    Status,
19    /// Check recorded bootstrap software for updates without upgrading it
20    Update {
21        /// Recorded bootstrap item to check
22        #[arg(value_name = "ITEM")]
23        item: Option<String>,
24        /// Also show current and manual-check-only items
25        #[arg(long)]
26        verbose: bool,
27        /// Route package-manager update checks through shine's preset proxy
28        #[arg(long)]
29        proxy: bool,
30    },
31    /// Bootstrap software and shell integration for the current OS
32    Bootstrap {
33        /// Apply a named profile without showing interactive selection
34        #[arg(long, value_name = "PROFILE")]
35        preset: Option<String>,
36        /// Print what would run without executing
37        #[arg(long)]
38        dry_run: bool,
39        /// Back up and replace the sys profile instead of merging user edits
40        #[arg(long)]
41        force_profile: bool,
42        /// Route init-script downloads through shine's preset proxy ([env] PROXY_HOST/HTTP_PROXY_PORT)
43        #[arg(long)]
44        proxy: bool,
45    },
46    /// Reapply enabled managed system configuration items
47    Apply {
48        /// Managed item to apply; applies all enabled items when omitted
49        #[arg(value_name = "ITEM")]
50        item: Option<String>,
51        /// Print what would run without executing
52        #[arg(long)]
53        dry_run: bool,
54    },
55    /// Remove a managed system configuration item safely
56    Uninstall {
57        /// Managed item to remove
58        #[arg(value_name = "ITEM")]
59        item: String,
60        /// Print what would run without executing
61        #[arg(long)]
62        dry_run: bool,
63    },
64}