From 238794258893336379bc56de645a63f7ddd6cc45 Mon Sep 17 00:00:00 2001 From: Amanjeev Sethi Date: Sat, 5 Oct 2019 15:01:01 -0400 Subject: [PATCH] Fix (command:clean): removes error message 'dir not found' if 'clean' is run multiple times --- src/cmd/clean.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cmd/clean.rs b/src/cmd/clean.rs index 07c2fbc6..9bc95c28 100644 --- a/src/cmd/clean.rs +++ b/src/cmd/clean.rs @@ -3,6 +3,7 @@ use clap::{App, ArgMatches, SubCommand}; use mdbook::errors::*; use mdbook::MDBook; use std::fs; +use std::path::Path; // Create clap subcommand arguments pub fn make_subcommand<'a, 'b>() -> App<'a, 'b> { @@ -29,7 +30,11 @@ pub fn execute(args: &ArgMatches) -> mdbook::errors::Result<()> { Some(dest_dir) => dest_dir.into(), None => book.root.join(&book.config.build.build_dir), }; - fs::remove_dir_all(&dir_to_remove).chain_err(|| "Unable to remove the build directory")?; + + let path_to_dir_to_remove = Path::new(&dir_to_remove); + if path_to_dir_to_remove.exists() { + fs::remove_dir_all(&dir_to_remove).chain_err(|| "Unable to remove the build directory")?; + } Ok(()) }