From 72a1c6298ef6620a15dce5a6f690996ef902fb49 Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Mon, 15 Apr 2019 00:57:56 +1200 Subject: [PATCH] handle not found error in purge-chain (#2274) --- substrate/core/cli/src/lib.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/substrate/core/cli/src/lib.rs b/substrate/core/cli/src/lib.rs index 3ed7347b50..40eb15296e 100644 --- a/substrate/core/cli/src/lib.rs +++ b/substrate/core/cli/src/lib.rs @@ -39,7 +39,7 @@ use network::{ use primitives::H256; use std::{ - io::{Write, Read, stdin, stdout}, iter, fs::{self, File}, net::{Ipv4Addr, SocketAddr}, + io::{Write, Read, stdin, stdout, ErrorKind}, iter, fs::{self, File}, net::{Ipv4Addr, SocketAddr}, path::{Path, PathBuf}, str::FromStr, }; @@ -673,10 +673,17 @@ where } } - fs::remove_dir_all(&db_path)?; - println!("{:?} removed.", &db_path); - - Ok(()) + match fs::remove_dir_all(&db_path) { + Result::Ok(_) => { + println!("{:?} removed.", &db_path); + Ok(()) + }, + Result::Err(ref err) if err.kind() == ErrorKind::NotFound => { + println!("{:?} did not exist.", &db_path); + Ok(()) + }, + Result::Err(err) => Result::Err(err.into()) + } } fn parse_address(