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.
This commit is contained in:
Joshua Nelson 2021-03-05 10:54:37 -05:00
parent 69a879f3d1
commit 173d2aaa00
6 changed files with 51 additions and 18 deletions

View File

@ -315,6 +315,13 @@ impl Options {
return Err(0);
}
if matches.opt_strs("print").iter().any(|opt| opt == "unversioned-files") {
for file in crate::html::render::FILES_UNVERSIONED.keys() {
println!("{}", file);
}
return Err(0);
}
let color = config::parse_color(&matches);
let (json_rendered, _artifacts) = config::parse_json(&matches);
let error_format = config::parse_error_format(&matches, color, json_rendered);

View File

@ -33,6 +33,7 @@ mod print_item;
mod write_shared;
crate use context::*;
crate use write_shared::FILES_UNVERSIONED;
use std::cell::{Cell, RefCell};
use std::collections::VecDeque;

View File

@ -3,8 +3,8 @@ use std::fmt::Write;
use std::fs::{self, File};
use std::io::prelude::*;
use std::io::{self, BufReader};
use std::path::{Component, Path, PathBuf};
use std::lazy::SyncLazy as Lazy;
use std::path::{Component, Path, PathBuf};
use itertools::Itertools;
use rustc_data_structures::flock;
@ -19,6 +19,26 @@ use crate::error::Error;
use crate::formats::FormatRenderer;
use crate::html::{layout, static_files};
crate static FILES_UNVERSIONED: Lazy<FxHashMap<&str, &[u8]>> = Lazy::new(|| {
map! {
"FiraSans-Regular.woff2" => static_files::fira_sans::REGULAR2,
"FiraSans-Medium.woff2" => static_files::fira_sans::MEDIUM2,
"FiraSans-Regular.woff" => static_files::fira_sans::REGULAR,
"FiraSans-Medium.woff" => static_files::fira_sans::MEDIUM,
"FiraSans-LICENSE.txt" => static_files::fira_sans::LICENSE,
"SourceSerifPro-Regular.ttf.woff" => static_files::source_serif_pro::REGULAR,
"SourceSerifPro-Bold.ttf.woff" => static_files::source_serif_pro::BOLD,
"SourceSerifPro-It.ttf.woff" => static_files::source_serif_pro::ITALIC,
"SourceSerifPro-LICENSE.md" => static_files::source_serif_pro::LICENSE,
"SourceCodePro-Regular.woff" => static_files::source_code_pro::REGULAR,
"SourceCodePro-Semibold.woff" => static_files::source_code_pro::SEMIBOLD,
"SourceCodePro-LICENSE.txt" => static_files::source_code_pro::LICENSE,
"LICENSE-MIT.txt" => static_files::LICENSE_MIT,
"LICENSE-APACHE.txt" => static_files::LICENSE_APACHE,
"COPYRIGHT.txt" => static_files::COPYRIGHT,
}
});
pub(super) fn write_shared(
cx: &Context<'_>,
krate: &Crate,
@ -213,23 +233,6 @@ themePicker.onblur = handleThemeButtonsBlur;
static_files::NORMALIZE_CSS,
options.enable_minification,
)?;
static FILES_UNVERSIONED: Lazy<FxHashMap<&str, &[u8]>> = Lazy::new(|| map! {
"FiraSans-Regular.woff2" => static_files::fira_sans::REGULAR2,
"FiraSans-Medium.woff2" => static_files::fira_sans::MEDIUM2,
"FiraSans-Regular.woff" => static_files::fira_sans::REGULAR,
"FiraSans-Medium.woff" => static_files::fira_sans::MEDIUM,
"FiraSans-LICENSE.txt" => static_files::fira_sans::LICENSE,
"SourceSerifPro-Regular.ttf.woff" => static_files::source_serif_pro::REGULAR,
"SourceSerifPro-Bold.ttf.woff" => static_files::source_serif_pro::BOLD,
"SourceSerifPro-It.ttf.woff" => static_files::source_serif_pro::ITALIC,
"SourceSerifPro-LICENSE.md" => static_files::source_serif_pro::LICENSE,
"SourceCodePro-Regular.woff" => static_files::source_code_pro::REGULAR,
"SourceCodePro-Semibold.woff" => static_files::source_code_pro::SEMIBOLD,
"SourceCodePro-LICENSE.txt" => static_files::source_code_pro::LICENSE,
"LICENSE-MIT.txt" => static_files::LICENSE_MIT,
"LICENSE-APACHE.txt" => static_files::LICENSE_APACHE,
"COPYRIGHT.txt" => static_files::COPYRIGHT,
});
for (file, contents) in &*FILES_UNVERSIONED {
write(cx.dst.join(file), contents)?;
}

View File

@ -524,6 +524,9 @@ fn opts() -> Vec<RustcOptGroup> {
"Generate JSON file at the top level instead of generating HTML redirection files",
)
}),
unstable("print", |o| {
o.optmulti("", "print", "Rustdoc information to print on stdout", "[unversioned-files]")
}),
]
}

View File

@ -0,0 +1,4 @@
-include ../tools.mk
all:
$(RUSTDOC) -Z unstable-options --print unversioned-files | sort | diff - unversioned-files.txt

View File

@ -0,0 +1,15 @@
COPYRIGHT.txt
FiraSans-LICENSE.txt
FiraSans-Medium.woff
FiraSans-Medium.woff2
FiraSans-Regular.woff
FiraSans-Regular.woff2
LICENSE-APACHE.txt
LICENSE-MIT.txt
SourceCodePro-LICENSE.txt
SourceCodePro-Regular.woff
SourceCodePro-Semibold.woff
SourceSerifPro-Bold.ttf.woff
SourceSerifPro-It.ttf.woff
SourceSerifPro-LICENSE.md
SourceSerifPro-Regular.ttf.woff