ic-query-cli 0.26.0

Command-line wrapper for read-only Internet Computer metadata queries
Documentation
use super::*;
use super::{
    data_center::{DATA_CENTER_SPEC, command as data_center_command},
    governance::{
        NnsGovernanceOptions, governance_command, governance_economics_command,
        governance_maturity_modulation_command, governance_metrics_command,
        governance_reward_event_command,
    },
    leaf::{
        NnsLeafInfoOptions, NnsLeafListOptions, NnsLeafRefreshOptions,
        info_command as leaf_info_command, list_command as leaf_list_command,
        refresh_command as leaf_refresh_command,
    },
    neuron::{
        NnsNeuronCacheOptions, NnsNeuronInfoOptions, NnsNeuronListOptions, NnsNeuronRefreshOptions,
        neuron_cache_command, neuron_cache_status_command, neuron_command, neuron_info_command,
        neuron_list_command, neuron_refresh_command,
    },
    node::{NODE_SPEC, node_command, node_list_command, node_list_options_from_matches},
    node_operator::{NODE_OPERATOR_SPEC, command as node_operator_command},
    node_provider::{NODE_PROVIDER_SPEC, command as node_provider_command},
    proposals::{
        DEFAULT_NNS_PROPOSAL_SOURCE_ENDPOINT, NnsProposalCacheOptions, NnsProposalListOptions,
        NnsProposalListSort, NnsProposalOptions, NnsProposalRefreshOptions,
        NnsProposalRewardStatusFilter, NnsProposalSortDirection, NnsProposalStatusFilter,
        NnsProposalTopicFilter, nns_proposal_cache_command, nns_proposal_cache_list_command,
        nns_proposal_cache_status_command, nns_proposal_command, nns_proposal_info_command,
        nns_proposal_list_command, nns_proposal_refresh_command,
    },
    registry::{RegistryVersionOptions, registry_command, registry_version_command},
    subnet::{
        CatalogInfoOptions, CatalogListOptions, CatalogRefreshOptions, info_command, list_command,
        refresh_command, subnet_command,
    },
    topology::{
        TopologyCapacityOptions, TopologyCoverageOptions, TopologyGapsOptions,
        TopologyHealthOptions, TopologyProvidersOptions, TopologyReadOptions,
        TopologyRefreshOptions, TopologyRegionsOptions, TopologySummaryOptions,
        TopologyVersionsOptions, topology_capacity_command, topology_command,
        topology_coverage_command, topology_gaps_command, topology_health_command,
        topology_providers_command, topology_refresh_command, topology_regions_command,
        topology_summary_command, topology_versions_command,
    },
};
use crate::cli::clap::parse_matches;
use clap::{ArgMatches, Command as ClapCommand};
use ic_query::nns::{
    data_center::{
        DEFAULT_DATA_CENTER_REFRESH_LOCK_STALE_SECONDS, DEFAULT_NNS_DATA_CENTER_SOURCE_ENDPOINT,
    },
    node::{DEFAULT_NNS_NODE_SOURCE_ENDPOINT, DEFAULT_NODE_REFRESH_LOCK_STALE_SECONDS},
    node_operator::{
        DEFAULT_NNS_NODE_OPERATOR_SOURCE_ENDPOINT, DEFAULT_NODE_OPERATOR_REFRESH_LOCK_STALE_SECONDS,
    },
    node_provider::{
        DEFAULT_NNS_NODE_PROVIDER_SOURCE_ENDPOINT, DEFAULT_NODE_PROVIDER_REFRESH_LOCK_STALE_SECONDS,
    },
    registry::DEFAULT_NNS_REGISTRY_SOURCE_ENDPOINT,
};
use ic_query::subnet_catalog::{
    DEFAULT_SUBNET_CATALOG_SOURCE_ENDPOINT, GeographicScope, MAINNET_NETWORK, SubnetKind,
    SubnetSpecialization,
};
use std::{ffi::OsString, path::PathBuf};

fn parse_test_options<Options>(
    command: ClapCommand,
    args: &[&str],
    from_matches: fn(&ArgMatches, &str) -> Options,
) -> Result<Options, NnsCommandError> {
    let matches = parse_test_matches(command, args)?;
    Ok(from_matches(&matches, MAINNET_NETWORK))
}

fn parse_test_matches(command: ClapCommand, args: &[&str]) -> Result<ArgMatches, NnsCommandError> {
    parse_matches(command, args.iter().copied().map(OsString::from))
        .map_err(|error| NnsCommandError::Usage(error.to_string()))
}

mod data_center;
mod governance;
mod neuron;
mod node;
mod node_operator;
mod node_provider;
mod proposals;
mod registry;
mod subnet;
mod topology_help;
mod topology_options;