blob: 8847437020d0c0dc0fb275525006a09f1c9817f0 [file]
use std::path::PathBuf;
use tidy::{t, walk};
pub const VERSION_PLACEHOLDER: &str = "CURRENT_RUSTC_VERSION";
fn main() {
let root_path: PathBuf = std::env::args_os().nth(1).expect("need path to root of repo").into();
let version_path = root_path.join("src").join("version");
let version_str = t!(std::fs::read_to_string(&version_path), version_path);
let version_str = version_str.trim();
walk::walk_many(
&[
&root_path.join("compiler"),
&root_path.join("library"),
&root_path.join("src/doc/rustc"),
&root_path.join("src/doc/rustdoc"),
&root_path.join("src/tools/clippy"),
],
|path, _is_dir| filter_dirs(path),
&mut |entry, contents| {
if !contents.contains(VERSION_PLACEHOLDER) {
return;
}
let new_contents = contents.replace(VERSION_PLACEHOLDER, version_str);
let path = entry.path();
t!(std::fs::write(&path, new_contents), path);
},
);
}
fn filter_dirs(path: &std::path::Path) -> bool {
// tidy would skip some paths that we do want to process
let allow = ["library/stdarch"];
walk::filter_dirs(path) && !allow.iter().any(|p| path.ends_with(p))
}