Skip to content

Commit

Permalink
Put build results in book dir
Browse files Browse the repository at this point in the history
  • Loading branch information
simon-bourne committed Nov 30, 2023
1 parent 0d9d2c2 commit f471d12
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
1 change: 1 addition & 0 deletions examples/book/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/book/
12 changes: 7 additions & 5 deletions packages/rust-book/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ struct Book {
src_dir: PathBuf,
out_dir: PathBuf,
out_src_dir: PathBuf,
book_out_dir: PathBuf,
}

impl Book {
Expand All @@ -68,25 +69,26 @@ impl Book {
src_dir: [&cargo_manifest_dir, "src"].into_iter().collect(),
out_dir: out_dir.clone(),
out_src_dir: out_dir.join("src"),
book_out_dir: [&cargo_manifest_dir, "book"].into_iter().collect(),
})
}

fn build(&self) -> Result<()> {
// TODO: Figure out why build fails sometimes when we remove the output dir:
// fs::remove_dir_all(&self.out_dir)?;
fs::create_dir_all(&self.out_dir)?;
fs::copy(
self.cargo_manifest_dir.join("book.toml"),
self.out_dir.join("book.toml"),
)?;
let mdbook_config_file = self.cargo_manifest_dir.join("book.toml");
fs::copy(&mdbook_config_file, self.out_dir.join("book.toml"))?;
fs::create_dir_all(&self.out_src_dir)?;
fs::copy(
self.src_dir.join("SUMMARY.md"),
self.out_src_dir.join("SUMMARY.md"),
)?;
self.build_modules(&[])?;

MDBook::load(&self.out_dir)?.build()?;
let mut config = mdbook::Config::from_disk(mdbook_config_file)?;
config.build.build_dir = self.book_out_dir.clone();
MDBook::load_with_config(&self.out_dir, config)?.build()?;
println!("Built rust book to '{:?}'", &self.out_dir);

Ok(())
Expand Down

0 comments on commit f471d12

Please sign in to comment.