Fix issues with extra-watch-dirs

Fix paths specified in extra-watch-dirs being relative to the current working directory rather than the book root

If there is an error canonicalising paths in extra-watch-dirs, log the error and exit rather than panicking
This commit is contained in:
riverbl 2023-07-28 18:19:56 +01:00
parent 429ca06289
commit e00b8835cc
1 changed files with 8 additions and 3 deletions

View File

@ -130,11 +130,16 @@ where
let _ = watcher.watch(&book.root.join("book.toml"), NonRecursive); let _ = watcher.watch(&book.root.join("book.toml"), NonRecursive);
for dir in &book.config.build.extra_watch_dirs { for dir in &book.config.build.extra_watch_dirs {
let path = dir.canonicalize().unwrap(); let path = book.root.join(dir);
if let Err(e) = watcher.watch(&path, Recursive) { let canonical_path = path.canonicalize().unwrap_or_else(|e| {
error!("Error while watching extra directory {path:?}:\n {e}");
std::process::exit(1);
});
if let Err(e) = watcher.watch(&canonical_path, Recursive) {
error!( error!(
"Error while watching extra directory {:?}:\n {:?}", "Error while watching extra directory {:?}:\n {:?}",
path, e canonical_path, e
); );
std::process::exit(1); std::process::exit(1);
} }