|
8 | 8 | //! `rustdoc`.
|
9 | 9 |
|
10 | 10 | use std::fs;
|
11 |
| -use std::io; |
12 | 11 | use std::path::{Path, PathBuf};
|
13 | 12 |
|
14 | 13 | use crate::builder::crate_description;
|
@@ -694,11 +693,11 @@ impl Step for Rustc {
|
694 | 693 | // rustc. rustdoc needs to be able to see everything, for example when
|
695 | 694 | // merging the search index, or generating local (relative) links.
|
696 | 695 | let out_dir = builder.stage_out(compiler, Mode::Rustc).join(target.triple).join("doc");
|
697 |
| - t!(symlink_dir_force(&builder.config, &out, &out_dir)); |
| 696 | + symlink_dir_force(&builder.config, &out, &out_dir); |
698 | 697 | // Cargo puts proc macros in `target/doc` even if you pass `--target`
|
699 | 698 | // explicitly (https://github.com/rust-lang/cargo/issues/7677).
|
700 | 699 | let proc_macro_out_dir = builder.stage_out(compiler, Mode::Rustc).join("doc");
|
701 |
| - t!(symlink_dir_force(&builder.config, &out, &proc_macro_out_dir)); |
| 700 | + symlink_dir_force(&builder.config, &out, &proc_macro_out_dir); |
702 | 701 |
|
703 | 702 | // Build cargo command.
|
704 | 703 | let mut cargo = builder.cargo(compiler, Mode::Rustc, SourceType::InTree, target, "doc");
|
@@ -816,7 +815,7 @@ macro_rules! tool_doc {
|
816 | 815 | ];
|
817 | 816 | for out_dir in out_dirs {
|
818 | 817 | t!(fs::create_dir_all(&out_dir));
|
819 |
| - t!(symlink_dir_force(&builder.config, &out, &out_dir)); |
| 818 | + symlink_dir_force(&builder.config, &out, &out_dir); |
820 | 819 | }
|
821 | 820 |
|
822 | 821 | // Build cargo command.
|
@@ -959,21 +958,24 @@ impl Step for UnstableBookGen {
|
959 | 958 | }
|
960 | 959 | }
|
961 | 960 |
|
962 |
| -fn symlink_dir_force(config: &Config, original: &Path, link: &Path) -> io::Result<()> { |
| 961 | +fn symlink_dir_force(config: &Config, original: &Path, link: &Path) { |
963 | 962 | if config.dry_run() {
|
964 |
| - return Ok(()); |
| 963 | + return; |
965 | 964 | }
|
966 | 965 | if let Ok(m) = fs::symlink_metadata(link) {
|
967 | 966 | if m.file_type().is_dir() {
|
968 |
| - fs::remove_dir_all(link)?; |
| 967 | + t!(fs::remove_dir_all(link)); |
969 | 968 | } else {
|
970 | 969 | // handle directory junctions on windows by falling back to
|
971 | 970 | // `remove_dir`.
|
972 |
| - fs::remove_file(link).or_else(|_| fs::remove_dir(link))?; |
| 971 | + t!(fs::remove_file(link).or_else(|_| fs::remove_dir(link))); |
973 | 972 | }
|
974 | 973 | }
|
975 | 974 |
|
976 |
| - symlink_dir(config, original, link) |
| 975 | + t!( |
| 976 | + symlink_dir(config, original, link), |
| 977 | + format!("failed to create link from {} -> {}", link.display(), original.display()) |
| 978 | + ); |
977 | 979 | }
|
978 | 980 |
|
979 | 981 | #[derive(Ord, PartialOrd, Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
|
0 commit comments