Skip to content

Commit 173d2aa

Browse files
committed
Add an unstable option to print all unversioned files
This allows sharing those files between different doc invocations without having to know their names ahead of time.
1 parent 69a879f commit 173d2aa

File tree

6 files changed

+51
-18
lines changed

6 files changed

+51
-18
lines changed

src/librustdoc/config.rs

+7
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,13 @@ impl Options {
315315
return Err(0);
316316
}
317317

318+
if matches.opt_strs("print").iter().any(|opt| opt == "unversioned-files") {
319+
for file in crate::html::render::FILES_UNVERSIONED.keys() {
320+
println!("{}", file);
321+
}
322+
return Err(0);
323+
}
324+
318325
let color = config::parse_color(&matches);
319326
let (json_rendered, _artifacts) = config::parse_json(&matches);
320327
let error_format = config::parse_error_format(&matches, color, json_rendered);

src/librustdoc/html/render/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ mod print_item;
3333
mod write_shared;
3434

3535
crate use context::*;
36+
crate use write_shared::FILES_UNVERSIONED;
3637

3738
use std::cell::{Cell, RefCell};
3839
use std::collections::VecDeque;

src/librustdoc/html/render/write_shared.rs

+21-18
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use std::fmt::Write;
33
use std::fs::{self, File};
44
use std::io::prelude::*;
55
use std::io::{self, BufReader};
6-
use std::path::{Component, Path, PathBuf};
76
use std::lazy::SyncLazy as Lazy;
7+
use std::path::{Component, Path, PathBuf};
88

99
use itertools::Itertools;
1010
use rustc_data_structures::flock;
@@ -19,6 +19,26 @@ use crate::error::Error;
1919
use crate::formats::FormatRenderer;
2020
use crate::html::{layout, static_files};
2121

22+
crate static FILES_UNVERSIONED: Lazy<FxHashMap<&str, &[u8]>> = Lazy::new(|| {
23+
map! {
24+
"FiraSans-Regular.woff2" => static_files::fira_sans::REGULAR2,
25+
"FiraSans-Medium.woff2" => static_files::fira_sans::MEDIUM2,
26+
"FiraSans-Regular.woff" => static_files::fira_sans::REGULAR,
27+
"FiraSans-Medium.woff" => static_files::fira_sans::MEDIUM,
28+
"FiraSans-LICENSE.txt" => static_files::fira_sans::LICENSE,
29+
"SourceSerifPro-Regular.ttf.woff" => static_files::source_serif_pro::REGULAR,
30+
"SourceSerifPro-Bold.ttf.woff" => static_files::source_serif_pro::BOLD,
31+
"SourceSerifPro-It.ttf.woff" => static_files::source_serif_pro::ITALIC,
32+
"SourceSerifPro-LICENSE.md" => static_files::source_serif_pro::LICENSE,
33+
"SourceCodePro-Regular.woff" => static_files::source_code_pro::REGULAR,
34+
"SourceCodePro-Semibold.woff" => static_files::source_code_pro::SEMIBOLD,
35+
"SourceCodePro-LICENSE.txt" => static_files::source_code_pro::LICENSE,
36+
"LICENSE-MIT.txt" => static_files::LICENSE_MIT,
37+
"LICENSE-APACHE.txt" => static_files::LICENSE_APACHE,
38+
"COPYRIGHT.txt" => static_files::COPYRIGHT,
39+
}
40+
});
41+
2242
pub(super) fn write_shared(
2343
cx: &Context<'_>,
2444
krate: &Crate,
@@ -213,23 +233,6 @@ themePicker.onblur = handleThemeButtonsBlur;
213233
static_files::NORMALIZE_CSS,
214234
options.enable_minification,
215235
)?;
216-
static FILES_UNVERSIONED: Lazy<FxHashMap<&str, &[u8]>> = Lazy::new(|| map! {
217-
"FiraSans-Regular.woff2" => static_files::fira_sans::REGULAR2,
218-
"FiraSans-Medium.woff2" => static_files::fira_sans::MEDIUM2,
219-
"FiraSans-Regular.woff" => static_files::fira_sans::REGULAR,
220-
"FiraSans-Medium.woff" => static_files::fira_sans::MEDIUM,
221-
"FiraSans-LICENSE.txt" => static_files::fira_sans::LICENSE,
222-
"SourceSerifPro-Regular.ttf.woff" => static_files::source_serif_pro::REGULAR,
223-
"SourceSerifPro-Bold.ttf.woff" => static_files::source_serif_pro::BOLD,
224-
"SourceSerifPro-It.ttf.woff" => static_files::source_serif_pro::ITALIC,
225-
"SourceSerifPro-LICENSE.md" => static_files::source_serif_pro::LICENSE,
226-
"SourceCodePro-Regular.woff" => static_files::source_code_pro::REGULAR,
227-
"SourceCodePro-Semibold.woff" => static_files::source_code_pro::SEMIBOLD,
228-
"SourceCodePro-LICENSE.txt" => static_files::source_code_pro::LICENSE,
229-
"LICENSE-MIT.txt" => static_files::LICENSE_MIT,
230-
"LICENSE-APACHE.txt" => static_files::LICENSE_APACHE,
231-
"COPYRIGHT.txt" => static_files::COPYRIGHT,
232-
});
233236
for (file, contents) in &*FILES_UNVERSIONED {
234237
write(cx.dst.join(file), contents)?;
235238
}

src/librustdoc/lib.rs

+3
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,9 @@ fn opts() -> Vec<RustcOptGroup> {
524524
"Generate JSON file at the top level instead of generating HTML redirection files",
525525
)
526526
}),
527+
unstable("print", |o| {
528+
o.optmulti("", "print", "Rustdoc information to print on stdout", "[unversioned-files]")
529+
}),
527530
]
528531
}
529532

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-include ../tools.mk
2+
3+
all:
4+
$(RUSTDOC) -Z unstable-options --print unversioned-files | sort | diff - unversioned-files.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
COPYRIGHT.txt
2+
FiraSans-LICENSE.txt
3+
FiraSans-Medium.woff
4+
FiraSans-Medium.woff2
5+
FiraSans-Regular.woff
6+
FiraSans-Regular.woff2
7+
LICENSE-APACHE.txt
8+
LICENSE-MIT.txt
9+
SourceCodePro-LICENSE.txt
10+
SourceCodePro-Regular.woff
11+
SourceCodePro-Semibold.woff
12+
SourceSerifPro-Bold.ttf.woff
13+
SourceSerifPro-It.ttf.woff
14+
SourceSerifPro-LICENSE.md
15+
SourceSerifPro-Regular.ttf.woff

0 commit comments

Comments
 (0)