Validator dir creation (#1746)
## Issue Addressed Resolves #1744 ## Proposed Changes - Add `directory::ensure_dir_exists` to the `ValidatorDefinition::open_or_create` method - As @pawanjay176 suggested, making the `--validator-dir` non-global so users are forced to include the flag after the `validator` subcommand. Current behavior seems to be ignoring the flag if it comes after something like `validator import` ## Additional Info N/A
This commit is contained in:
parent
a67fa5f4a4
commit
b69c63d486
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -38,6 +38,7 @@ dependencies = [
|
||||
name = "account_utils"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"directory",
|
||||
"eth2_keystore",
|
||||
"eth2_wallet",
|
||||
"rand 0.7.3",
|
||||
|
@ -26,7 +26,6 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
||||
Defaults to ~/.lighthouse/{testnet}/validators",
|
||||
)
|
||||
.takes_value(true)
|
||||
.global(true)
|
||||
.conflicts_with("datadir"),
|
||||
)
|
||||
.subcommand(create::cli_app())
|
||||
|
@ -18,7 +18,6 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
||||
.value_name("WALLETS_DIRECTORY")
|
||||
.help("A path containing Eth2 EIP-2386 wallets. Defaults to ~/.lighthouse/{testnet}/wallets")
|
||||
.takes_value(true)
|
||||
.global(true)
|
||||
.conflicts_with("datadir"),
|
||||
)
|
||||
.subcommand(create::cli_app())
|
||||
|
@ -19,3 +19,4 @@ types = { path = "../../consensus/types" }
|
||||
validator_dir = { path = "../validator_dir" }
|
||||
regex = "1.3.9"
|
||||
rpassword = "5.0.0"
|
||||
directory = { path = "../directory" }
|
||||
|
@ -4,6 +4,7 @@
|
||||
//! attempt) to load into the `crate::intialized_validators::InitializedValidators` struct.
|
||||
|
||||
use crate::{create_with_600_perms, default_keystore_password_path, ZeroizeString};
|
||||
use directory::ensure_dir_exists;
|
||||
use eth2_keystore::Keystore;
|
||||
use regex::Regex;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
@ -35,6 +36,8 @@ pub enum Error {
|
||||
InvalidKeystorePubkey,
|
||||
/// The keystore was unable to be opened.
|
||||
UnableToOpenKeystore(eth2_keystore::Error),
|
||||
/// The validator directory could not be created.
|
||||
UnableToCreateValidatorDir(PathBuf),
|
||||
}
|
||||
|
||||
/// Defines how the validator client should attempt to sign messages for this validator.
|
||||
@ -108,6 +111,9 @@ pub struct ValidatorDefinitions(Vec<ValidatorDefinition>);
|
||||
impl ValidatorDefinitions {
|
||||
/// Open an existing file or create a new, empty one if it does not exist.
|
||||
pub fn open_or_create<P: AsRef<Path>>(validators_dir: P) -> Result<Self, Error> {
|
||||
ensure_dir_exists(validators_dir.as_ref()).map_err(|_| {
|
||||
Error::UnableToCreateValidatorDir(PathBuf::from(validators_dir.as_ref()))
|
||||
})?;
|
||||
let config_path = validators_dir.as_ref().join(CONFIG_FILENAME);
|
||||
if !config_path.exists() {
|
||||
let this = Self::default();
|
||||
|
Loading…
Reference in New Issue
Block a user