mirror of
https://github.com/rust-lang/mdBook.git
synced 2025-12-27 10:16:09 -05:00
Merge pull request #2886 from ehuss/simplify-runner
Simplify GUI runner
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use std::fs::read_to_string;
|
use std::fs::read_to_string;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::Path;
|
||||||
use std::process::{Command, Output};
|
use std::process::{Command, Output};
|
||||||
|
|
||||||
fn get_available_browser_ui_test_version_inner(global: bool) -> Option<String> {
|
fn get_available_browser_ui_test_version_inner(global: bool) -> Option<String> {
|
||||||
@@ -75,7 +75,6 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn build_books(out_dir: &Path) {
|
fn build_books(out_dir: &Path) {
|
||||||
let exe = build_mdbook();
|
|
||||||
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
|
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
|
||||||
let books_dir = root.join("tests/gui/books");
|
let books_dir = root.join("tests/gui/books");
|
||||||
for entry in books_dir.read_dir().unwrap() {
|
for entry in books_dir.read_dir().unwrap() {
|
||||||
@@ -85,7 +84,7 @@ fn build_books(out_dir: &Path) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
println!("Building `{}`", path.display());
|
println!("Building `{}`", path.display());
|
||||||
let mut cmd = Command::new(&exe);
|
let mut cmd = Command::new(env!("CARGO_BIN_EXE_mdbook"));
|
||||||
let output = cmd
|
let output = cmd
|
||||||
.arg("build")
|
.arg("build")
|
||||||
.arg("--dest-dir")
|
.arg("--dest-dir")
|
||||||
@@ -97,28 +96,6 @@ fn build_books(out_dir: &Path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build_mdbook() -> PathBuf {
|
|
||||||
let mut cmd = Command::new("cargo");
|
|
||||||
let output = cmd
|
|
||||||
.arg("build")
|
|
||||||
.output()
|
|
||||||
.expect("cargo should be installed");
|
|
||||||
check_status(&cmd, &output);
|
|
||||||
let target_dir = detect_target_dir();
|
|
||||||
target_dir.join("debug/mdbook")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn detect_target_dir() -> PathBuf {
|
|
||||||
let mut cmd = Command::new("cargo");
|
|
||||||
let output = cmd
|
|
||||||
.args(["metadata", "--format-version=1", "--no-deps"])
|
|
||||||
.output()
|
|
||||||
.expect("cargo should be installed");
|
|
||||||
check_status(&cmd, &output);
|
|
||||||
let v: serde_json::Value = serde_json::from_slice(&output.stdout).expect("invalid json");
|
|
||||||
PathBuf::from(v["target_directory"].as_str().unwrap())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn check_status(cmd: &Command, output: &Output) {
|
fn check_status(cmd: &Command, output: &Output) {
|
||||||
if !output.status.success() {
|
if !output.status.success() {
|
||||||
eprintln!("error: `{cmd:?}` failed");
|
eprintln!("error: `{cmd:?}` failed");
|
||||||
|
|||||||
Reference in New Issue
Block a user