mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-24 10:11:08 +00:00
Make wasm-builder check before copy/write files if the content is the same (#6149)
* Make `wasm-builder` check before copy/write files if the content is the same * Update utils/wasm-builder/src/lib.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
This commit is contained in:
@@ -185,6 +185,17 @@ fn write_file_if_changed(file: PathBuf, content: String) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Copy `src` to `dst` if the `dst` does not exist or is different.
|
||||||
|
fn copy_file_if_changed(src: PathBuf, dst: PathBuf) {
|
||||||
|
let src_file = fs::read_to_string(&src).ok();
|
||||||
|
let dst_file = fs::read_to_string(&dst).ok();
|
||||||
|
|
||||||
|
if src_file != dst_file {
|
||||||
|
fs::copy(&src, &dst)
|
||||||
|
.expect(&format!("Copying `{}` to `{}` can not fail; qed", src.display(), dst.display()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Get a cargo command that compiles with nightly
|
/// Get a cargo command that compiles with nightly
|
||||||
fn get_nightly_cargo() -> CargoCommand {
|
fn get_nightly_cargo() -> CargoCommand {
|
||||||
let env_cargo = CargoCommand::new(
|
let env_cargo = CargoCommand::new(
|
||||||
|
|||||||
@@ -302,10 +302,10 @@ fn create_wasm_workspace_project(wasm_workspace: &Path, workspace_root_path: &Pa
|
|||||||
wasm_workspace_toml.insert("patch".into(), patch.into());
|
wasm_workspace_toml.insert("patch".into(), patch.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
fs::write(
|
write_file_if_changed(
|
||||||
wasm_workspace.join("Cargo.toml"),
|
wasm_workspace.join("Cargo.toml"),
|
||||||
toml::to_string_pretty(&wasm_workspace_toml).expect("Wasm workspace toml is valid; qed"),
|
toml::to_string_pretty(&wasm_workspace_toml).expect("Wasm workspace toml is valid; qed"),
|
||||||
).expect("WASM workspace `Cargo.toml` writing can not fail; qed");
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a list of enabled features for the project.
|
/// Get a list of enabled features for the project.
|
||||||
@@ -382,8 +382,7 @@ fn create_project(cargo_manifest: &Path, wasm_workspace: &Path, crate_metadata:
|
|||||||
|
|
||||||
if let Some(crate_lock_file) = find_cargo_lock(cargo_manifest) {
|
if let Some(crate_lock_file) = find_cargo_lock(cargo_manifest) {
|
||||||
// Use the `Cargo.lock` of the main project.
|
// Use the `Cargo.lock` of the main project.
|
||||||
fs::copy(crate_lock_file, wasm_workspace.join("Cargo.lock"))
|
crate::copy_file_if_changed(crate_lock_file, wasm_workspace.join("Cargo.lock"));
|
||||||
.expect("Copying the `Cargo.lock` can not fail; qed");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
project_folder
|
project_folder
|
||||||
|
|||||||
Reference in New Issue
Block a user