Allow testnet command to overwrite files (#1045)
This commit is contained in:
parent
91648cc230
commit
6784a8b42a
@ -64,9 +64,11 @@ impl<E: EthSpec> Eth2TestnetConfig<E> {
|
||||
})
|
||||
}
|
||||
|
||||
// Write the files to the directory, only if the directory doesn't already exist.
|
||||
pub fn write_to_file(&self, base_dir: PathBuf) -> Result<(), String> {
|
||||
if base_dir.exists() {
|
||||
// Write the files to the directory.
|
||||
//
|
||||
// Overwrites files if specified to do so.
|
||||
pub fn write_to_file(&self, base_dir: PathBuf, overwrite: bool) -> Result<(), String> {
|
||||
if base_dir.exists() && !overwrite {
|
||||
return Err("Testnet directory already exists".to_string());
|
||||
}
|
||||
|
||||
@ -252,7 +254,7 @@ mod tests {
|
||||
};
|
||||
|
||||
testnet
|
||||
.write_to_file(base_dir.clone())
|
||||
.write_to_file(base_dir.clone(), false)
|
||||
.expect("should write to file");
|
||||
|
||||
let decoded = Eth2TestnetConfig::load(base_dir).expect("should load struct");
|
||||
|
@ -254,6 +254,13 @@ fn main() {
|
||||
"Produce a new testnet directory. If any of the optional flags are not
|
||||
supplied the values will remain the default for the --spec flag",
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("force")
|
||||
.long("force")
|
||||
.short("f")
|
||||
.takes_value(false)
|
||||
.help("Overwrites any previous testnet configurations"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("min-genesis-time")
|
||||
.long("min-genesis-time")
|
||||
|
@ -15,11 +15,15 @@ pub fn run<T: EthSpec>(matches: &ArgMatches) -> Result<(), String> {
|
||||
let deposit_contract_address: Address = parse_required(matches, "deposit-contract-address")?;
|
||||
let deposit_contract_deploy_block = parse_required(matches, "deposit-contract-deploy-block")?;
|
||||
|
||||
let overwrite_files = matches.is_present("force");
|
||||
|
||||
if testnet_dir_path.exists() {
|
||||
return Err(format!(
|
||||
"{:?} already exists, will not overwrite",
|
||||
testnet_dir_path
|
||||
));
|
||||
if !overwrite_files {
|
||||
return Err(format!(
|
||||
"{:?} already exists, will not overwrite. Use --force to overwrite",
|
||||
testnet_dir_path
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
let mut spec = T::default_spec();
|
||||
@ -57,5 +61,5 @@ pub fn run<T: EthSpec>(matches: &ArgMatches) -> Result<(), String> {
|
||||
yaml_config: Some(YamlConfig::from_spec::<T>(&spec)),
|
||||
};
|
||||
|
||||
testnet.write_to_file(testnet_dir_path)
|
||||
testnet.write_to_file(testnet_dir_path, overwrite_files)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user