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