This removes the `--dest-dir` flag from the `mdbook test` subcommand because it is unused. The test command does not generate output, so it doesn't need an output directory.
52 lines
1.5 KiB
Rust
52 lines
1.5 KiB
Rust
use super::command_prelude::*;
|
|
use crate::get_book_dir;
|
|
use anyhow::Result;
|
|
use clap::ArgAction;
|
|
use clap::builder::NonEmptyStringValueParser;
|
|
use mdbook_driver::MDBook;
|
|
|
|
// Create clap subcommand arguments
|
|
pub fn make_subcommand() -> Command {
|
|
Command::new("test")
|
|
.about("Tests that a book's Rust code samples compile")
|
|
.arg_root_dir()
|
|
.arg(
|
|
Arg::new("chapter")
|
|
.short('c')
|
|
.long("chapter")
|
|
.value_name("chapter"),
|
|
)
|
|
.arg(
|
|
Arg::new("library-path")
|
|
.short('L')
|
|
.long("library-path")
|
|
.value_name("dir")
|
|
.value_delimiter(',')
|
|
.value_parser(NonEmptyStringValueParser::new())
|
|
.action(ArgAction::Append)
|
|
.help(
|
|
"A comma-separated list of directories to add to the crate \
|
|
search path when building tests",
|
|
),
|
|
)
|
|
}
|
|
|
|
// test command implementation
|
|
pub fn execute(args: &ArgMatches) -> Result<()> {
|
|
let library_paths: Vec<&str> = args
|
|
.get_many("library-path")
|
|
.map(|it| it.map(String::as_str).collect())
|
|
.unwrap_or_default();
|
|
|
|
let chapter: Option<&str> = args.get_one::<String>("chapter").map(|s| s.as_str());
|
|
|
|
let book_dir = get_book_dir(args);
|
|
let mut book = MDBook::load(book_dir)?;
|
|
|
|
match chapter {
|
|
Some(_) => book.test_chapter(library_paths, chapter),
|
|
None => book.test(library_paths),
|
|
}?;
|
|
|
|
Ok(())
|
|
}
|