cloud_terrastodon_entrypoint 0.34.0

Main entrypoint for the Cloud Terrastodon CLI
use cloud_terrastodon_azure::prelude::fetch_all_users;
use cloud_terrastodon_user_input::Choice;
use cloud_terrastodon_user_input::PickerTui;
use eyre::Result;
use tracing::info;

pub async fn browse_users() -> Result<()> {
    info!("Fetching users");
    let users = fetch_all_users().await?;
    let users = PickerTui::new()
        .set_header("Users")
        .pick_many(users.into_iter().map(|u| Choice {
            key: format!("{} {:64} {}", u.id, u.display_name, u.user_principal_name),
            value: u,
        }))?;
    info!("You chose:");
    for user in users {
        println!(
            "- {} {:64} {}",
            user.id, user.display_name, user.user_principal_name
        );
    }
    Ok(())
}