diff --git a/xtask/src/docs/mod.rs b/xtask/src/docs/mod.rs index 7cc0922d..ec3c5d3b 100644 --- a/xtask/src/docs/mod.rs +++ b/xtask/src/docs/mod.rs @@ -1,4 +1,6 @@ use std::{ + fs::File, + io::BufRead, path::{Path, PathBuf}, process::Command, }; @@ -40,9 +42,34 @@ pub fn docs() -> Result<(), anyhow::Error> { .open("./target/doc/crates.js")?; file.write_all(crates_js)?; + let mut search_indexes = read_lines("./target/doc/search-index.js")? + .map(|l| l.unwrap()) + .collect::>(); + search_indexes.truncate(search_indexes.len() - 2); + let mut last = search_indexes.pop().unwrap(); + last = last.trim_end_matches('\\').to_string() + ",\\"; + search_indexes.push(last); + + for l in read_lines("./bpf/target/doc/search-index.js")?.skip(1) { + search_indexes.push(l.unwrap()); + } + let mut file = fs::File::options() + .read(true) + .write(true) + .open("./target/doc/search-index.js")?; + file.write_all(search_indexes.join("\n").as_bytes())?; + Ok(()) } +fn read_lines

(filename: P) -> io::Result>> +where + P: AsRef, +{ + let file = File::open(filename)?; + Ok(io::BufReader::new(file).lines()) +} + fn copy_dir_all>(src: P, dst: P) -> io::Result<()> { fs::create_dir_all(&dst)?; for entry in fs::read_dir(src)? {