zoi/cmd/
telemetry.rs

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}