Skip to content
This repository has been archived by the owner on Jan 22, 2025. It is now read-only.

Commit

Permalink
Cli: Update OutputFormat method to return a String to restore consist…
Browse files Browse the repository at this point in the history
…ency (#9904)

* Update OutputFormat method to return a String to restore consistency

* Remove process_show_account special case

(cherry picked from commit 65a52a4)
  • Loading branch information
CriesofCarrots authored and mergify-bot committed May 7, 2020
1 parent 056a995 commit bcb31ba
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 39 deletions.
11 changes: 6 additions & 5 deletions cli/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ use solana_transaction_status::{EncodedTransaction, TransactionEncoding};
use solana_vote_program::vote_state::VoteAuthorize;
use std::{
error,
fmt::Write as FmtWrite,
fs::File,
io::{Read, Write},
net::{IpAddr, SocketAddr},
Expand Down Expand Up @@ -1265,21 +1266,21 @@ fn process_show_account(
use_lamports_unit,
};

config.output_format.formatted_print(&cli_account);
let mut account_string = config.output_format.formatted_string(&cli_account);

if config.output_format == OutputFormat::Display {
if let Some(output_file) = output_file {
let mut f = File::create(output_file)?;
f.write_all(&data)?;
println!();
println!("Wrote account data to {}", output_file);
writeln!(&mut account_string)?;
writeln!(&mut account_string, "Wrote account data to {}", output_file)?;
} else if !data.is_empty() {
use pretty_hex::*;
println!("{:?}", data.hex_dump());
writeln!(&mut account_string, "{:?}", data.hex_dump())?;
}
}

Ok("".to_string())
Ok(account_string)
}

fn process_deploy(
Expand Down
14 changes: 4 additions & 10 deletions cli/src/cli_output.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,14 @@ pub enum OutputFormat {
}

impl OutputFormat {
pub fn formatted_print<T>(&self, item: &T)
pub fn formatted_string<T>(&self, item: &T) -> String
where
T: Serialize + fmt::Display,
{
match self {
OutputFormat::Display => {
println!("{}", item);
}
OutputFormat::Json => {
println!("{}", serde_json::to_string_pretty(item).unwrap());
}
OutputFormat::JsonCompact => {
println!("{}", serde_json::to_value(item).unwrap());
}
OutputFormat::Display => format!("{}", item),
OutputFormat::Json => serde_json::to_string_pretty(item).unwrap(),
OutputFormat::JsonCompact => serde_json::to_value(item).unwrap().to_string(),
}
}
}
Expand Down
20 changes: 7 additions & 13 deletions cli/src/cluster_query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -534,8 +534,7 @@ pub fn process_cluster_date(rpc_client: &RpcClient, config: &CliConfig) -> Proce
slot: result.context.slot,
timestamp: clock.unix_timestamp,
};
config.output_format.formatted_print(&block_time);
Ok("".to_string())
Ok(config.output_format.formatted_string(&block_time))
} else {
Err(format!("AccountNotFound: pubkey={}", sysvar::clock::id()).into())
}
Expand Down Expand Up @@ -602,8 +601,7 @@ pub fn process_get_block_time(
};
let timestamp = rpc_client.get_block_time(slot)?;
let block_time = CliBlockTime { slot, timestamp };
config.output_format.formatted_print(&block_time);
Ok("".to_string())
Ok(config.output_format.formatted_string(&block_time))
}

pub fn process_get_epoch_info(
Expand All @@ -614,8 +612,7 @@ pub fn process_get_epoch_info(
let epoch_info: CliEpochInfo = rpc_client
.get_epoch_info_with_commitment(commitment_config.clone())?
.into();
config.output_format.formatted_print(&epoch_info);
Ok("".to_string())
Ok(config.output_format.formatted_string(&epoch_info))
}

pub fn process_get_genesis_hash(rpc_client: &RpcClient) -> ProcessResult {
Expand Down Expand Up @@ -797,8 +794,7 @@ pub fn process_show_block_production(
individual_slot_status,
verbose: config.verbose,
};
config.output_format.formatted_print(&block_production);
Ok("".to_string())
Ok(config.output_format.formatted_string(&block_production))
}

pub fn process_total_supply(
Expand Down Expand Up @@ -1127,10 +1123,9 @@ pub fn process_show_stakes(
}
}
}
config
Ok(config
.output_format
.formatted_print(&CliStakeVec::new(stake_accounts));
Ok("".to_string())
.formatted_string(&CliStakeVec::new(stake_accounts)))
}

pub fn process_show_validators(
Expand Down Expand Up @@ -1174,8 +1169,7 @@ pub fn process_show_validators(
delinquent_validators,
use_lamports_unit,
};
config.output_format.formatted_print(&cli_validators);
Ok("".to_string())
Ok(config.output_format.formatted_string(&cli_validators))
}

pub fn process_transaction_history(
Expand Down
3 changes: 1 addition & 2 deletions cli/src/nonce.rs
Original file line number Diff line number Diff line change
Expand Up @@ -606,8 +606,7 @@ pub fn process_show_nonce_account(
nonce_account.authority = Some(data.authority.to_string());
}

config.output_format.formatted_print(&nonce_account);
Ok("".to_string())
Ok(config.output_format.formatted_string(&nonce_account))
};
match state_from_account(&nonce_account)? {
State::Uninitialized => print_account(None),
Expand Down
6 changes: 2 additions & 4 deletions cli/src/stake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1341,8 +1341,7 @@ pub fn process_show_stake_account(
match stake_account.state() {
Ok(stake_state) => {
let state = build_stake_state(stake_account.lamports, &stake_state, use_lamports_unit);
config.output_format.formatted_print(&state);
Ok("".to_string())
Ok(config.output_format.formatted_string(&state))
}
Err(err) => Err(CliError::RpcRequestError(format!(
"Account data could not be deserialized to stake state: {}",
Expand Down Expand Up @@ -1370,8 +1369,7 @@ pub fn process_show_stake_history(
entries,
use_lamports_unit,
};
config.output_format.formatted_print(&stake_history_output);
Ok("".to_string())
Ok(config.output_format.formatted_string(&stake_history_output))
}

#[allow(clippy::too_many_arguments)]
Expand Down
5 changes: 2 additions & 3 deletions cli/src/validator_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -410,10 +410,9 @@ pub fn process_get_validator_info(
info: validator_info,
});
}
config
Ok(config
.output_format
.formatted_print(&CliValidatorInfoVec::new(validator_info_list));
Ok("".to_string())
.formatted_string(&CliValidatorInfoVec::new(validator_info_list)))
}

#[cfg(test)]
Expand Down
3 changes: 1 addition & 2 deletions cli/src/vote.rs
Original file line number Diff line number Diff line change
Expand Up @@ -606,8 +606,7 @@ pub fn process_show_vote_account(
use_lamports_unit,
};

config.output_format.formatted_print(&vote_account_data);
Ok("".to_string())
Ok(config.output_format.formatted_string(&vote_account_data))
}

pub fn process_withdraw_from_vote_account(
Expand Down

0 comments on commit bcb31ba

Please sign in to comment.