1use anyhow::Result;
2use colored::*;
3
4pub enum TelemetryCommand {
5 Status,
6 Enable,
7 Disable,
8}
9
10pub fn run(cmd: TelemetryCommand) -> Result<()> {
11 match cmd {
12 TelemetryCommand::Status => {
13 let cfg = crate::pkg::config::read_config()?;
14 let status = if cfg.telemetry_enabled {
15 "Enabled".green()
16 } else {
17 "Disabled".yellow()
18 };
19 println!("Telemetry: {}", status);
20 }
21 TelemetryCommand::Enable => {
22 let mut cfg = crate::pkg::config::read_user_config()?;
23 cfg.telemetry_enabled = true;
24 crate::pkg::config::write_user_config(&cfg)?;
25 println!("{} telemetry enabled", "Success:".green());
26 }
27 TelemetryCommand::Disable => {
28 let mut cfg = crate::pkg::config::read_user_config()?;
29 cfg.telemetry_enabled = false;
30 crate::pkg::config::write_user_config(&cfg)?;
31 println!("{} telemetry disabled", "Success:".green());
32 }
33 }
34 Ok(())
35}