pub mod add_work_dir;
pub mod azure;
pub mod azure_devops;
pub mod cache;
pub mod clean;
pub mod copy_results;
pub mod dump_azure_devops;
pub mod dump_everything;
pub mod egui;
pub mod extract_uuid;
pub mod get_path;
pub mod nslookup;
pub mod outage;
pub mod perform_code_generation_from_imports;
pub mod pick;
pub mod ratatui;
pub mod rest;
pub mod terraform;
pub mod write_all_imports;
use crate::cli::add_work_dir::AddWorkDirArgs;
use crate::cli::azure::AzureArgs;
use crate::cli::azure_devops::AzureDevOpsArgs;
use crate::cli::cache::CacheArgs;
use crate::cli::clean::CleanArgs;
use crate::cli::copy_results::CopyResultsArgs;
use crate::cli::dump_azure_devops::DumpAzureDevOpsArgs;
use crate::cli::dump_everything::DumpEverythingArgs;
use crate::cli::egui::EguiArgs;
use crate::cli::extract_uuid::ExtractUuidArgs;
use crate::cli::get_path::GetPathArgs;
use crate::cli::nslookup::NslookupArgs;
use crate::cli::outage::OutageArgs;
use crate::cli::perform_code_generation_from_imports::PerformCodeGenerationFromImportsArgs;
use crate::cli::pick::PickArgs;
use crate::cli::ratatui::RatatuiArgs;
use crate::cli::rest::RestArgs;
use crate::cli::terraform::TerraformArgs;
use crate::cli::write_all_imports::WriteAllImportsArgs;
use clap::Subcommand;
use eyre::Result;
#[derive(Subcommand, Debug)]
pub enum CloudTerrastodonCommand {
Ratatui(RatatuiArgs),
Egui(EguiArgs),
Clean(CleanArgs),
WriteAllImports(WriteAllImportsArgs),
PerformCodeGenerationFromImports(PerformCodeGenerationFromImportsArgs),
DumpEverything(DumpEverythingArgs),
DumpAzureDevOps(DumpAzureDevOpsArgs),
GetPath(GetPathArgs),
Nslookup(NslookupArgs),
Outage(OutageArgs),
Rest(RestArgs),
CopyResults(CopyResultsArgs),
AddWorkDir(AddWorkDirArgs),
#[command(alias = "tf")]
Terraform(TerraformArgs),
#[command(alias = "azdo")]
AzureDevOps(AzureDevOpsArgs),
#[command(alias = "az")]
Azure(AzureArgs),
ExtractUuid(ExtractUuidArgs),
Pick(PickArgs),
Cache(CacheArgs),
}
impl CloudTerrastodonCommand {
pub async fn invoke(self) -> Result<()> {
match self {
CloudTerrastodonCommand::Ratatui(args) => args.invoke().await,
CloudTerrastodonCommand::Egui(args) => args.invoke().await,
CloudTerrastodonCommand::Clean(args) => args.invoke().await,
CloudTerrastodonCommand::WriteAllImports(args) => args.invoke().await,
CloudTerrastodonCommand::PerformCodeGenerationFromImports(args) => args.invoke().await,
CloudTerrastodonCommand::DumpEverything(args) => args.invoke().await,
CloudTerrastodonCommand::DumpAzureDevOps(args) => args.invoke().await,
CloudTerrastodonCommand::GetPath(args) => args.invoke().await,
CloudTerrastodonCommand::Nslookup(args) => args.invoke().await,
CloudTerrastodonCommand::Outage(args) => args.invoke().await,
CloudTerrastodonCommand::Rest(args) => args.invoke_and_print().await,
CloudTerrastodonCommand::CopyResults(args) => args.invoke().await,
CloudTerrastodonCommand::AddWorkDir(args) => args.invoke().await,
CloudTerrastodonCommand::Terraform(args) => args.invoke().await,
CloudTerrastodonCommand::AzureDevOps(args) => args.invoke().await,
CloudTerrastodonCommand::Azure(args) => args.invoke().await,
CloudTerrastodonCommand::ExtractUuid(args) => args.invoke().await,
CloudTerrastodonCommand::Pick(args) => args.invoke().await,
CloudTerrastodonCommand::Cache(args) => args.invoke().await,
}
}
}