Add --number argument

This commit is contained in:
Michael Vines 2021-04-19 13:35:59 -07:00
parent 1824b5a2ce
commit f14cf3ed1a
3 changed files with 37 additions and 15 deletions

View File

@ -326,6 +326,8 @@ pub struct CliValidators {
pub validators_sort_order: CliValidatorsSortOrder, pub validators_sort_order: CliValidatorsSortOrder,
#[serde(skip_serializing)] #[serde(skip_serializing)]
pub validators_reverse_sort: bool, pub validators_reverse_sort: bool,
#[serde(skip_serializing)]
pub number_validators: bool,
pub stake_by_version: BTreeMap<String, CliValidatorsStakeByVersion>, pub stake_by_version: BTreeMap<String, CliValidatorsStakeByVersion>,
#[serde(skip_serializing)] #[serde(skip_serializing)]
pub use_lamports_unit: bool, pub use_lamports_unit: bool,
@ -377,21 +379,25 @@ impl fmt::Display for CliValidators {
) )
} }
let padding = ((self.validators.len() + 1) as f64).log10().floor() as usize + 1; let padding = if self.number_validators {
((self.validators.len() + 1) as f64).log10().floor() as usize + 1
} else {
0
};
let header = style(format!( let header = style(format!(
"{:padding$} {:<44} {:<38} {} {} {} {:>11} {:^7} {}", "{:padding$} {:<44} {:<38} {} {} {} {:>11} {:^7} {}",
" ", " ",
"Identity", "Identity",
"Vote Account", "Vote Account",
"Commission", "Commission",
"Last Vote", "Last Vote",
"Root Block", "Root Block",
"Epoch Credits", "Epoch Credits",
"Version", "Version",
"Active Stake", "Active Stake",
padding = padding padding = padding + 1
)) ))
.bold(); .bold();
writeln!(f, "{}", header)?; writeln!(f, "{}", header)?;
let mut sorted_validators = self.validators.clone(); let mut sorted_validators = self.validators.clone();
@ -427,7 +433,9 @@ impl fmt::Display for CliValidators {
} }
for (i, validator) in sorted_validators.iter().enumerate() { for (i, validator) in sorted_validators.iter().enumerate() {
write!(f, "{:padding$}", i + 1, padding = padding)?; if padding > 0 {
write!(f, "{:padding$}", i + 1, padding = padding)?;
}
write_vote_account( write_vote_account(
f, f,
validator, validator,

View File

@ -133,6 +133,7 @@ pub enum CliCommand {
use_lamports_unit: bool, use_lamports_unit: bool,
sort_order: CliValidatorsSortOrder, sort_order: CliValidatorsSortOrder,
reverse_sort: bool, reverse_sort: bool,
number_validators: bool,
}, },
Supply { Supply {
print_accounts: bool, print_accounts: bool,
@ -1385,12 +1386,14 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
use_lamports_unit, use_lamports_unit,
sort_order, sort_order,
reverse_sort, reverse_sort,
number_validators,
} => process_show_validators( } => process_show_validators(
&rpc_client, &rpc_client,
config, config,
*use_lamports_unit, *use_lamports_unit,
*sort_order, *sort_order,
*reverse_sort, *reverse_sort,
*number_validators,
), ),
CliCommand::Supply { print_accounts } => { CliCommand::Supply { print_accounts } => {
process_supply(&rpc_client, config, *print_accounts) process_supply(&rpc_client, config, *print_accounts)

View File

@ -350,6 +350,13 @@ impl ClusterQuerySubCommands for App<'_, '_> {
.takes_value(false) .takes_value(false)
.help("Display balance in lamports instead of SOL"), .help("Display balance in lamports instead of SOL"),
) )
.arg(
Arg::with_name("number")
.long("number")
.short("n")
.takes_value(false)
.help("Number the validators"),
)
.arg( .arg(
Arg::with_name("reverse") Arg::with_name("reverse")
.long("reverse") .long("reverse")
@ -606,6 +613,7 @@ pub fn parse_show_stakes(
pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> { pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> {
let use_lamports_unit = matches.is_present("lamports"); let use_lamports_unit = matches.is_present("lamports");
let number_validators = matches.is_present("number");
let reverse_sort = matches.is_present("reverse"); let reverse_sort = matches.is_present("reverse");
let sort_order = match value_t_or_exit!(matches, "sort", String).as_str() { let sort_order = match value_t_or_exit!(matches, "sort", String).as_str() {
@ -625,6 +633,7 @@ pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result<CliCommandInfo,
use_lamports_unit, use_lamports_unit,
sort_order, sort_order,
reverse_sort, reverse_sort,
number_validators,
}, },
signers: vec![], signers: vec![],
}) })
@ -1773,6 +1782,7 @@ pub fn process_show_validators(
use_lamports_unit: bool, use_lamports_unit: bool,
validators_sort_order: CliValidatorsSortOrder, validators_sort_order: CliValidatorsSortOrder,
validators_reverse_sort: bool, validators_reverse_sort: bool,
number_validators: bool,
) -> ProcessResult { ) -> ProcessResult {
let epoch_info = rpc_client.get_epoch_info()?; let epoch_info = rpc_client.get_epoch_info()?;
let vote_accounts = rpc_client.get_vote_accounts()?; let vote_accounts = rpc_client.get_vote_accounts()?;
@ -1859,6 +1869,7 @@ pub fn process_show_validators(
.collect(), .collect(),
validators_sort_order, validators_sort_order,
validators_reverse_sort, validators_reverse_sort,
number_validators,
stake_by_version, stake_by_version,
use_lamports_unit, use_lamports_unit,
}; };