relay-cli 0.1.2

CLI interface for Relay Agents.
use crate::{progress::Progress, storage::Storage};

#[derive(Debug, Clone, clap::Parser)]
#[clap(about = "List local identities")]
pub struct IdentitiesCmd {}

impl IdentitiesCmd {
    pub fn execute(&self, storage: &mut Storage) -> anyhow::Result<()> {
        let mut progress = Progress::new(false);
        progress.commit();

        let mut identities = storage.root.identities.values().collect::<Vec<_>>();
        identities.sort_by(|a, b| a.pub_record.id.cmp(&b.pub_record.id));

        for identity in identities.iter() {
            identity.print(0, &mut progress);
        }

        Ok(())
    }
}