diff options
| author | bors <bors@rust-lang.org> | 2021-04-22 07:47:06 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-04-22 07:47:06 +0000 |
| commit | 88b99dec2a4d103b8153ca9300bf0fbebdf65bda (patch) | |
| tree | a2a45ee14ebdeb4a87874596ca792fbf7aed27d0 /src | |
| parent | 71965ab4d05b023cd29c914ef1262a72cac02e01 (diff) | |
| parent | 6dfd700c595a8853fd58349c38c4768b922a2e85 (diff) | |
| download | rust-88b99dec2a4d103b8153ca9300bf0fbebdf65bda.tar.gz rust-88b99dec2a4d103b8153ca9300bf0fbebdf65bda.zip | |
Auto merge of #84289 - andersk:bootstrap-bulk-dir, r=Mark-Simulacrum
bootstrap: Restore missing --bulk-dirs for rust-docs, rustc-docs The `--bulk-dirs` argument was removed for rust-docs in commit c768ce138427b1844c1f6594daba9c0e33928032 and rustc-docs in commit 8ca46fc7a83734c9622f11f25d16b82316f44bcc (#79788), presumably by mistake; that slowed down installation of rust-docs from under a second to some twenty *minutes*. Restoring `--bulk-dirs` reverses this slowdown. Fixes #80684. Cc `@pietroalbini.`
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/dist.rs | 4 | ||||
| -rw-r--r-- | src/bootstrap/tarball.rs | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs index 38ebe0e5208..aee3c8324bc 100644 --- a/src/bootstrap/dist.rs +++ b/src/bootstrap/dist.rs @@ -74,7 +74,7 @@ impl Step for Docs { let mut tarball = Tarball::new(builder, "rust-docs", &host.triple); tarball.set_product_name("Rust Documentation"); - tarball.add_dir(&builder.doc_out(host), dest); + tarball.add_bulk_dir(&builder.doc_out(host), dest); tarball.add_file(&builder.src.join("src/doc/robots.txt"), dest, 0o644); Some(tarball.generate()) } @@ -107,7 +107,7 @@ impl Step for RustcDocs { let mut tarball = Tarball::new(builder, "rustc-docs", &host.triple); tarball.set_product_name("Rustc Documentation"); - tarball.add_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); + tarball.add_bulk_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); Some(tarball.generate()) } } diff --git a/src/bootstrap/tarball.rs b/src/bootstrap/tarball.rs index b02d7e062a5..9ff5c2327e0 100644 --- a/src/bootstrap/tarball.rs +++ b/src/bootstrap/tarball.rs @@ -99,6 +99,7 @@ pub(crate) struct Tarball<'a> { temp_dir: PathBuf, image_dir: PathBuf, overlay_dir: PathBuf, + bulk_dirs: Vec<PathBuf>, include_target_in_component_name: bool, is_preview: bool, @@ -137,6 +138,7 @@ impl<'a> Tarball<'a> { temp_dir, image_dir, overlay_dir, + bulk_dirs: Vec::new(), include_target_in_component_name: false, is_preview: false, @@ -201,6 +203,11 @@ impl<'a> Tarball<'a> { self.builder.cp_r(src.as_ref(), &dest); } + pub(crate) fn add_bulk_dir(&mut self, src: impl AsRef<Path>, dest: impl AsRef<Path>) { + self.bulk_dirs.push(dest.as_ref().to_path_buf()); + self.add_dir(src, dest); + } + pub(crate) fn generate(self) -> GeneratedTarball { let mut component_name = self.component.clone(); if self.is_preview { @@ -221,6 +228,16 @@ impl<'a> Tarball<'a> { .arg("--image-dir") .arg(&this.image_dir) .arg(format!("--component-name={}", &component_name)); + + if let Some((dir, dirs)) = this.bulk_dirs.split_first() { + let mut arg = dir.as_os_str().to_os_string(); + for dir in dirs { + arg.push(","); + arg.push(dir); + } + cmd.arg("--bulk-dirs").arg(&arg); + } + this.non_bare_args(cmd); }) } |
