cloud_terrastodon_entrypoint 0.35.0

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

pub async fn browse_resources_menu(tenant_id: AzureTenantId) -> Result<()> {
    info!("Fetching resources");
    let choices = fetch_all_resources(tenant_id)
        .await?
        .into_iter()
        .map(|x| Choice {
            key: x.id.expanded_form().to_owned(),
            value: x,
        });
    let chosen: Vec<Resource> = PickerTui::new()
        .set_header("Resources")
        .pick_many(choices)?;
    info!("You chose:");
    for value in chosen {
        info!("{:#?}", value);
    }
    Ok(())
}