denki 0.1.1

CLI for controlling TP-Link smart home devices — denki (電気) means electricity in Japanese
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use anyhow::Result;

use crate::creds;

pub fn handle_login(email: &str, password: Option<String>) -> Result<()> {
    let password = match password {
        Some(p) => p,
        None => rpassword::prompt_password("Tapo password: ")
            .map_err(|e| anyhow::anyhow!("Failed to read password: {e}"))?,
    };
    creds::save(email, &password)?;
    crate::output::record(serde_json::json!({"credentials_saved":true}));
    crate::output::println!("Tapo credentials saved to {}", creds::path_display());
    crate::output::println!(
        "(On Unix, only your account can read this file. Use TAPO_USER/TAPO_PASS env vars to override.)"
    );
    Ok(())
}