4 use std::process::{exit, Command};
6 const FILES_TO_IGNORE: &[&str] = &["light.css"];
8 fn get_folders<P: AsRef<Path>>(folder_path: P) -> Vec<String> {
9 let mut ret = Vec::with_capacity(10);
11 for entry in read_dir(folder_path.as_ref()).expect("read_dir failed") {
12 let entry = entry.expect("Couldn't unwrap entry");
13 let path = entry.path();
18 let filename = path.file_name().expect("file_name failed");
19 if FILES_TO_IGNORE.iter().any(|x| x == &filename) {
22 ret.push(format!("{}", path.display()));
28 let argv: Vec<String> = args().collect();
31 eprintln!("Needs rustdoc binary path");
34 let rustdoc_bin = &argv[1];
35 let themes_folder = &argv[2];
36 let themes = get_folders(&themes_folder);
37 if themes.is_empty() {
38 eprintln!("No theme found in \"{}\"...", themes_folder);
41 let arg_name = "--check-theme".to_owned();
42 let status = Command::new(rustdoc_bin)
43 .args(&themes.iter().flat_map(|t| vec![&arg_name, t].into_iter()).collect::<Vec<_>>())
45 .expect("failed to execute child");
46 if !status.success() {