domino_cli 0.1.1

Client to interact with a domino application running on holochain
Documentation
use domino_cli::*;
use structopt::StructOpt;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let cli = Cli::from_args();

    match cli.cmd {
        Command::Dashboard => actions::dashboard::dashboard(cli.common).await?,
        Command::ProgenitorCommand(cmd) => match cmd {
            ProgenitorCommand::Dashboard => actions::dashboard::dashboard(cli.common).await?,
            ProgenitorCommand::Init { library_path } => {
                actions::progenitor::init(cli.common, library_path).await?
            }
            ProgenitorCommand::InitializeGlobalDefinition => {
                actions::zome_call::global::initialize_global_definition(
                    cli.common, None, None, None, None, None, None,
                )
                .await?
            }
            ProgenitorCommand::GetGlobalDefinitions => {
                actions::zome_call::global::get_current_global_definition(cli.common).await?
            }
            ProgenitorCommand::AddGlobalUnits(unit_definition) => {
                actions::zome_call::global::add_global_units(cli.common, unit_definition).await?
            }
            ProgenitorCommand::UpdateGlobalUnits(unit_definition) => {
                actions::zome_call::global::update_global_units(cli.common, unit_definition).await?
            }
            ProgenitorCommand::GetGlobalUnitsDetails => {
                actions::zome_call::global::get_global_units_details(cli.common).await?
            }
            ProgenitorCommand::CreateServiceNetworkDefinition { definition } => {
                actions::zome_call::service_network::create_service_network_definition(
                    cli.common, definition,
                )
                .await?
            }
            ProgenitorCommand::UpdateServiceNetworkDefinition { definition } => {
                actions::zome_call::service_network::update_service_network_definition(
                    cli.common, definition,
                )
                .await?
            }
            ProgenitorCommand::GetAllServiceNetwork => {
                actions::zome_call::service_network::get_all_service_network(cli.common).await?
            }
        },
        Command::ZomeCommand(cmd) => match cmd {
            ZomeCommand::WhoAmI => {
                _ = actions::dashboard::whoami(cli.common).await?;
                return Ok(());
            }
            ZomeCommand::GetLedger => actions::dashboard::get_ledger(cli.common).await?,
            ZomeCommand::GetPending => actions::dashboard::get_pending(cli.common).await?,
            ZomeCommand::GetActionableTransactions => {
                actions::dashboard::get_actionable_transactions(cli.common).await?
            }
            ZomeCommand::GetCompleted => actions::dashboard::get_completed(cli.common).await?,
            ZomeCommand::CreateSpend {
                receiver,
                amount,
                note,
                auto_credit_check,
            } => {
                actions::zome_call::transactions::create_spend(
                    cli.common,
                    receiver,
                    amount,
                    note,
                    auto_credit_check,
                )
                .await?
            }
            ZomeCommand::CreateInvoice {
                spender,
                amount,
                note,
            } => {
                actions::zome_call::transactions::create_invoice(cli.common, spender, amount, note)
                    .await?
            }
            ZomeCommand::AcceptTransaction {
                address,
                auto_credit_check,
            } => {
                actions::zome_call::transactions::accept_transaction(
                    cli.common,
                    address,
                    auto_credit_check,
                )
                .await?
            }
            ZomeCommand::GetParkedSpend => {
                actions::zome_call::transactions::get_parked_spend(cli.common).await?
            }
            ZomeCommand::ExecuteSAVED { input } => {
                actions::zome_call::saved::execute_saved(cli.common, input).await?
            }
            ZomeCommand::GetIncomingSAVEDs => {
                actions::zome_call::saved::get_incoming_saveds(cli.common).await?
            }
            ZomeCommand::AcceptSAVED { saved } => {
                actions::zome_call::saved::collect_from_saved(cli.common, saved).await?
            }
            ZomeCommand::GetGlobalDefinitions => {
                actions::zome_call::global::get_current_global_definition(cli.common).await?
            }
            ZomeCommand::GetGlobalUnitsDetails => {
                actions::zome_call::global::get_global_units_details(cli.common).await?
            }
            ZomeCommand::GetAllServiceNetworks => {
                actions::zome_call::service_network::get_all_service_network(cli.common).await?
            }
            ZomeCommand::GetCodeTemplatesLib => {
                _ = actions::zome_call::saved::get_code_templates_lib(cli.common).await?
            }
        },
    }

    Ok(())
}