diff options
| author | est31 <MTest31@outlook.com> | 2022-08-23 22:14:12 +0200 |
|---|---|---|
| committer | est31 <MTest31@outlook.com> | 2022-08-27 17:39:11 +0200 |
| commit | d32ff14b86c72f55a113a3f477c42b2995e8c620 (patch) | |
| tree | d14a78a6b93f5daab2206353450547a28d11ead9 /src/tools/replace-version-placeholder | |
| parent | a2e2d7676822600c81a519343c7eccab9204334b (diff) | |
| download | rust-d32ff14b86c72f55a113a3f477c42b2995e8c620.tar.gz rust-d32ff14b86c72f55a113a3f477c42b2995e8c620.zip | |
Add replace-version-placeholder tool
This tool is to be ran at specific points in the release process to replace the version place holder made by stabilizations with the version number.
Diffstat (limited to 'src/tools/replace-version-placeholder')
| -rw-r--r-- | src/tools/replace-version-placeholder/Cargo.toml | 10 | ||||
| -rw-r--r-- | src/tools/replace-version-placeholder/src/main.rs | 30 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/tools/replace-version-placeholder/Cargo.toml b/src/tools/replace-version-placeholder/Cargo.toml new file mode 100644 index 00000000000..346ce6bd1db --- /dev/null +++ b/src/tools/replace-version-placeholder/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "replace-version-placeholder" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +tidy = { path = "../tidy" } +walkdir = "2" diff --git a/src/tools/replace-version-placeholder/src/main.rs b/src/tools/replace-version-placeholder/src/main.rs new file mode 100644 index 00000000000..146e53f2e9a --- /dev/null +++ b/src/tools/replace-version-placeholder/src/main.rs @@ -0,0 +1,30 @@ +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( + &root_path, + &mut |path| { + walk::filter_dirs(path) + // We exempt these as they require the placeholder + // for their operation + || path.ends_with("compiler/rustc_passes/src/lib_features.rs") + || path.ends_with("src/tools/tidy/src/features/version.rs") + || path.ends_with("src/tools/replace-version-placeholder") + }, + &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); + }, + ); +} |
