smart-password-manager-cli 0.1.0

Command line interface for smart password management built on smartpasslib. Generate deterministic passwords from secret phrases without storing them.
use anyhow::Result;
use smartpasslib::SmartPasswordManager;

use crate::output;

use super::{confirm, find_entry, short_key};

pub fn run(key: Option<String>, description: Option<String>, yes: bool) -> Result<()> {
    let mut manager = SmartPasswordManager::new()?;
    let entry = find_entry(&manager, key, description)?;

    if !yes {
        let prompt = format!(
            "Delete entry '{}' ({})?",
            entry.description,
            short_key(&entry.public_key)
        );
        if !confirm(&prompt) {
            output::note("Cancelled.");
            return Ok(());
        }
    }

    let deleted = manager.delete(&entry.public_key)?;
    if deleted {
        output::success(&format!("Deleted entry '{}'", entry.description));
    } else {
        output::error("Entry not found");
    }

    Ok(())
}