cloud_terrastodon_entrypoint 0.35.1

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

pub async fn browse_users(tenant_id: AzureTenantId) -> Result<()> {
    info!("Fetching users");
    let users = fetch_all_entra_users(tenant_id).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(())
}