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(())
}