bonds-cli 0.1.1

CLI for creating and managing symlink-based bonds
Documentation
use bonds_core::{BondError, BondManager};

pub fn cmd_list(manager: &BondManager) -> Result<(), BondError> {
    let bonds = manager.list_bonds()?;

    if bonds.is_empty() {
        println!("No bonds found.");
        return Ok(());
    }

    for bond in &bonds {
        let label = match bond.name() {
            Some(name) => format!("{name} ({id})", id = &bond.id()[..8]),
            None => bond.id()[..8].to_string(),
        };
        println!(
            "{label}  -  {src} -> {tgt}  ({date})",
            src = bond.source().display(),
            tgt = bond.target().display(),
            date = bond.created_at().format("%Y-%m-%d %H:%M"),
        );
    }

    println!("\n{} bond(s) total.", bonds.len());
    Ok(())
}