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}