Fix naming of validators in CLI (#1332)
## Issue Addressed NA ## Proposed Changes - Adds a `lighthouse account validator list` command, to list all known validators. - Fixes the validator names; previously they were using a full path (e.g., `"/home/paul/.lighthouse/validators/0x8ce25415d078bdc83133758604578ba51707a55965eeca8982f44695db7432d6ff1c23529020a971faa68ab60baf3118"` but now we only use the final directory name (e.g., `0x8ce25415d078bdc83133758604578ba51707a55965eeca8982f44695db7432d6ff1c23529020a971faa68ab60baf3118`).
This commit is contained in:
parent
a413b43fed
commit
5680355b31
30
account_manager/src/validator/list.rs
Normal file
30
account_manager/src/validator/list.rs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
use crate::VALIDATOR_DIR_FLAG;
|
||||||
|
use clap::{App, ArgMatches};
|
||||||
|
use std::path::PathBuf;
|
||||||
|
use validator_dir::Manager as ValidatorManager;
|
||||||
|
|
||||||
|
pub const CMD: &str = "list";
|
||||||
|
|
||||||
|
pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
||||||
|
App::new(CMD).about("Lists the names of all validators.")
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn cli_run(matches: &ArgMatches<'_>) -> Result<(), String> {
|
||||||
|
let data_dir = clap_utils::parse_path_with_default_in_home_dir(
|
||||||
|
matches,
|
||||||
|
VALIDATOR_DIR_FLAG,
|
||||||
|
PathBuf::new().join(".lighthouse").join("validators"),
|
||||||
|
)?;
|
||||||
|
|
||||||
|
let mgr = ValidatorManager::open(&data_dir)
|
||||||
|
.map_err(|e| format!("Unable to read --{}: {:?}", VALIDATOR_DIR_FLAG, e))?;
|
||||||
|
|
||||||
|
for (name, _path) in mgr
|
||||||
|
.directory_names()
|
||||||
|
.map_err(|e| format!("Unable to list wallets: {:?}", e))?
|
||||||
|
{
|
||||||
|
println!("{}", name)
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
pub mod create;
|
pub mod create;
|
||||||
pub mod deposit;
|
pub mod deposit;
|
||||||
|
pub mod list;
|
||||||
|
|
||||||
use crate::common::base_wallet_dir;
|
use crate::common::base_wallet_dir;
|
||||||
use clap::{App, Arg, ArgMatches};
|
use clap::{App, Arg, ArgMatches};
|
||||||
@ -20,6 +21,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
|||||||
)
|
)
|
||||||
.subcommand(create::cli_app())
|
.subcommand(create::cli_app())
|
||||||
.subcommand(deposit::cli_app())
|
.subcommand(deposit::cli_app())
|
||||||
|
.subcommand(list::cli_app())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn cli_run<T: EthSpec>(matches: &ArgMatches, env: Environment<T>) -> Result<(), String> {
|
pub fn cli_run<T: EthSpec>(matches: &ArgMatches, env: Environment<T>) -> Result<(), String> {
|
||||||
@ -28,6 +30,7 @@ pub fn cli_run<T: EthSpec>(matches: &ArgMatches, env: Environment<T>) -> Result<
|
|||||||
match matches.subcommand() {
|
match matches.subcommand() {
|
||||||
(create::CMD, Some(matches)) => create::cli_run::<T>(matches, env, base_wallet_dir),
|
(create::CMD, Some(matches)) => create::cli_run::<T>(matches, env, base_wallet_dir),
|
||||||
(deposit::CMD, Some(matches)) => deposit::cli_run::<T>(matches, env),
|
(deposit::CMD, Some(matches)) => deposit::cli_run::<T>(matches, env),
|
||||||
|
(list::CMD, Some(matches)) => list::cli_run(matches),
|
||||||
(unknown, _) => Err(format!(
|
(unknown, _) => Err(format!(
|
||||||
"{} does not have a {} command. See --help",
|
"{} does not have a {} command. See --help",
|
||||||
CMD, unknown
|
CMD, unknown
|
||||||
|
@ -164,10 +164,12 @@ impl Manager {
|
|||||||
///
|
///
|
||||||
/// Returns an error if a directory is unable to be read.
|
/// Returns an error if a directory is unable to be read.
|
||||||
pub fn directory_names(&self) -> Result<HashMap<String, PathBuf>, Error> {
|
pub fn directory_names(&self) -> Result<HashMap<String, PathBuf>, Error> {
|
||||||
Ok(HashMap::from_iter(
|
Ok(HashMap::from_iter(self.iter_dir()?.into_iter().filter_map(
|
||||||
self.iter_dir()?
|
|path| {
|
||||||
.into_iter()
|
path.file_name()
|
||||||
.map(|path| (format!("{:?}", path), path)),
|
.and_then(|os_string| os_string.to_str().map(|s| s.to_string()))
|
||||||
))
|
.map(|filename| (filename, path))
|
||||||
|
},
|
||||||
|
)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user