diff options
| author | bors <bors@rust-lang.org> | 2017-11-16 01:16:58 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-11-16 01:16:58 +0000 |
| commit | 42ea30c8b0107cced6c85f9240111d61aa3ff654 (patch) | |
| tree | 66f2cdc672573b003a6f9f181318b41e94a7f21a | |
| parent | b8c70b0fdf7dea9bfd1834e61d32fc40f0c70db4 (diff) | |
| parent | 3b32a3a104732004ca1b9e40a38221dd1cf3eb7f (diff) | |
| download | rust-42ea30c8b0107cced6c85f9240111d61aa3ff654.tar.gz rust-42ea30c8b0107cced6c85f9240111d61aa3ff654.zip | |
Auto merge of #45692 - steveklabnik:ship-cargo-book, r=alexcrichton
Start shipping the Cargo book Fixes #44910 Fixes #39588 See both of those bugs for more details.
| -rw-r--r-- | src/bootstrap/doc.rs | 91 | ||||
| -rw-r--r-- | src/doc/index.md | 2 |
2 files changed, 48 insertions, 45 deletions
diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs index 16e8ee182bd..4cbbcd2ebd8 100644 --- a/src/bootstrap/doc.rs +++ b/src/bootstrap/doc.rs @@ -133,6 +133,52 @@ impl Step for UnstableBook { } #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct CargoBook { + target: Interned<String>, + name: Interned<String>, +} + +impl Step for CargoBook { + type Output = (); + const DEFAULT: bool = true; + + fn should_run(run: ShouldRun) -> ShouldRun { + let builder = run.builder; + run.path("src/tools/cargo/src/doc/book").default_condition(builder.build.config.docs) + } + + fn make_run(run: RunConfig) { + run.builder.ensure(CargoBook { + target: run.target, + name: INTERNER.intern_str("cargo"), + }); + } + + fn run(self, builder: &Builder) { + let build = builder.build; + + let target = self.target; + let name = self.name; + let src = PathBuf::from("src/tools/cargo/src/doc/book"); + + let out = build.doc_out(target); + t!(fs::create_dir_all(&out)); + + let out = out.join(name); + + println!("Cargo Book ({}) - {}", target, name); + + let _ = fs::remove_dir_all(&out); + + build.run(builder.tool_cmd(Tool::Rustbook) + .arg("build") + .arg(&src) + .arg("-d") + .arg(out)); + } +} + +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] struct RustbookSrc { target: Interned<String>, name: Interned<String>, @@ -240,51 +286,6 @@ impl Step for TheBook { } } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct CargoBook { - target: Interned<String>, -} - -impl Step for CargoBook { - type Output = (); - const DEFAULT: bool = true; - - fn should_run(run: ShouldRun) -> ShouldRun { - let builder = run.builder; - run.path("src/doc/cargo").default_condition(builder.build.config.docs) - } - - fn make_run(run: RunConfig) { - run.builder.ensure(CargoBook { - target: run.target, - }); - } - - /// Create a placeholder for the cargo documentation so that doc.rust-lang.org/cargo will - /// redirect to doc.crates.io. We want to publish doc.rust-lang.org/cargo in the paper - /// version of the book, but we don't want to rush the process of switching cargo's docs - /// over to mdbook and deploying them. When the cargo book is ready, this implementation - /// should build the mdbook instead of this redirect page. - fn run(self, builder: &Builder) { - let build = builder.build; - let out = build.doc_out(self.target); - - let cargo_dir = out.join("cargo"); - t!(fs::create_dir_all(&cargo_dir)); - - let index = cargo_dir.join("index.html"); - let redirect_html = r#" - <html> - <head> - <meta http-equiv="refresh" content="0; URL='http://doc.crates.io'" /> - </head> - </html>"#; - - println!("Creating cargo book redirect page"); - t!(t!(File::create(&index)).write_all(redirect_html.as_bytes())); - } -} - fn invoke_rustdoc(builder: &Builder, compiler: Compiler, target: Interned<String>, markdown: &str) { let build = builder.build; let out = build.doc_out(target); diff --git a/src/doc/index.md b/src/doc/index.md index bfd09145baa..3784cc3c4b4 100644 --- a/src/doc/index.md +++ b/src/doc/index.md @@ -28,6 +28,7 @@ Rust provides a number of book-length sets of documentation, collectively nicknamed 'The Rust Bookshelf.' * [The Rust Programming Language][book] teaches you how to program in Rust. +* [The Cargo Book][cargo-book] is a guide to Cargo, Rust's build tool and dependency manager. * [The Unstable Book][unstable-book] has documentation for unstable features. * [The Rustonomicon][nomicon] is your guidebook to the dark arts of unsafe Rust. * [The Reference][ref] is not a formal spec, but is more detailed and comprehensive than the book. @@ -53,4 +54,5 @@ before this policy was put into place. That work is being tracked [nomicon]: nomicon/index.html [unstable-book]: unstable-book/index.html [rustdoc-book]: rustdoc/index.html +[cargo-book]: cargo/index.html |
