Add flags to not print account contents (#21178)
It takes a long time to print the contents of all the accounts. I'll be adding more to the "accounts" subcommand and would like to skip printing the account contents.
This commit is contained in:
parent
6704fa011f
commit
2031522809
|
@ -1425,10 +1425,16 @@ fn main() {
|
|||
.help("Include sysvars too"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("exclude_account_data")
|
||||
.long("exclude-account-data")
|
||||
Arg::with_name("no_account_contents")
|
||||
.long("no-account-contents")
|
||||
.takes_value(false)
|
||||
.help("Exclude account data (useful for large number of accounts)"),
|
||||
.help("Do not print contents of each account, which is very slow with lots of accounts."),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("no_account_data")
|
||||
.long("no-account-data")
|
||||
.takes_value(false)
|
||||
.help("Do not print account data when printing account contents."),
|
||||
)
|
||||
.arg(&max_genesis_archive_unpacked_size_arg)
|
||||
).subcommand(
|
||||
|
@ -2471,26 +2477,24 @@ fn main() {
|
|||
};
|
||||
let genesis_config = open_genesis_config_by(&ledger_path, arg_matches);
|
||||
let include_sysvars = arg_matches.is_present("include_sysvars");
|
||||
let exclude_account_data = arg_matches.is_present("exclude_account_data");
|
||||
let blockstore = open_blockstore(
|
||||
&ledger_path,
|
||||
AccessType::TryPrimaryThenSecondary,
|
||||
wal_recovery_mode,
|
||||
);
|
||||
match load_bank_forks(
|
||||
let (bank_forks, ..) = load_bank_forks(
|
||||
arg_matches,
|
||||
&genesis_config,
|
||||
&blockstore,
|
||||
process_options,
|
||||
snapshot_archive_path,
|
||||
) {
|
||||
Ok((bank_forks, ..)) => {
|
||||
let slot = bank_forks.working_bank().slot();
|
||||
let bank = bank_forks.get(slot).unwrap_or_else(|| {
|
||||
eprintln!("Error: Slot {} is not available", slot);
|
||||
)
|
||||
.unwrap_or_else(|err| {
|
||||
eprintln!("Failed to load ledger: {:?}", err);
|
||||
exit(1);
|
||||
});
|
||||
|
||||
let bank = bank_forks.working_bank();
|
||||
let accounts: BTreeMap<_, _> = bank
|
||||
.get_all_accounts_with_modified_slots()
|
||||
.unwrap()
|
||||
|
@ -2501,7 +2505,10 @@ fn main() {
|
|||
.map(|(pubkey, account, slot)| (pubkey, (account, slot)))
|
||||
.collect();
|
||||
|
||||
println!("---");
|
||||
let print_account_contents = !arg_matches.is_present("no_account_contents");
|
||||
if print_account_contents {
|
||||
println!("Getting accounts contents...");
|
||||
let print_account_data = !arg_matches.is_present("no_account_data");
|
||||
for (pubkey, (account, slot)) in accounts.into_iter() {
|
||||
let data_len = account.data().len();
|
||||
println!("{}:", pubkey);
|
||||
|
@ -2510,17 +2517,12 @@ fn main() {
|
|||
println!(" - executable: {}", account.executable());
|
||||
println!(" - slot: {}", slot);
|
||||
println!(" - rent_epoch: {}", account.rent_epoch());
|
||||
if !exclude_account_data {
|
||||
if print_account_data {
|
||||
println!(" - data: '{}'", bs58::encode(account.data()).into_string());
|
||||
}
|
||||
println!(" - data_len: {}", data_len);
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to load ledger: {:?}", err);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
("capitalization", Some(arg_matches)) => {
|
||||
let dev_halt_at_slot = value_t!(arg_matches, "halt_at_slot", Slot).ok();
|
||||
|
|
Loading…
Reference in New Issue