diff --git a/CHANGELOG.md b/CHANGELOG.md index f634d2aa..57d3a0d7 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## CHANGELOG +### v0.37.17 + +* Fix: support encrypted drives (shorten script file names) #1150 + ### v0.37.16 (2024-08-30) * Enhancement: Expand condition_script_runner_args #1132 (thanks @wmmc88) diff --git a/Cargo.lock b/Cargo.lock index eab23773..e3223ff2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,6 +163,7 @@ dependencies = [ "itertools", "lenient_semver", "log", + "md5", "nu-ansi-term", "once_cell", "petgraph", @@ -174,7 +175,6 @@ dependencies = [ "serde_derive", "serde_ignored", "serde_json", - "sha2", "shell2batch", "strip-ansi-escapes", "strum_macros", @@ -880,6 +880,12 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + [[package]] name = "memchr" version = "2.7.4" diff --git a/Cargo.toml b/Cargo.toml index b05591fe..72f81175 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,6 +63,7 @@ indexmap = { version = "^2", features = ["serde"] } itertools = "^0.13" lenient_semver = "^0.4.2" log = "^0.4" +md5 = "^0.7" once_cell = "^1.19.0" petgraph = "^0.6.5" regex = "^1.10" @@ -73,7 +74,6 @@ serde = "^1" serde_derive = "^1" serde_ignored = "^0.1" serde_json = "^1" -sha2 = "^0.10" shell2batch = "^0.4.5" strip-ansi-escapes = "^0.2" strum_macros = "0.26.4" diff --git a/src/lib/scriptengine/script_utils.rs b/src/lib/scriptengine/script_utils.rs index 2e1f3754..19ee15ad 100644 --- a/src/lib/scriptengine/script_utils.rs +++ b/src/lib/scriptengine/script_utils.rs @@ -11,8 +11,7 @@ use crate::error::CargoMakeError; use crate::io::create_text_file; use fsio::file::write_text_file; use fsio::path::as_path::AsPath; -use sha2::{Digest, Sha256}; -use std::fmt::Write; +use md5; use std::path::PathBuf; pub(crate) fn create_script_file( @@ -31,8 +30,8 @@ pub(crate) fn create_persisted_script_file( let text = script_text.join("\n"); let string_bytes = text.as_bytes(); - let bytes = Sha256::digest(string_bytes); - let file_name = bytes_to_hex(&bytes[..])?; + let bytes = md5::compute(string_bytes); + let file_name = format!("{:x}", bytes); let default_target_directory = envmnt::get_or("CARGO_MAKE_CRATE_TARGET_DIRECTORY", "target"); let directory = envmnt::get_or( @@ -61,12 +60,3 @@ pub(crate) fn create_persisted_script_file( } } } - -fn bytes_to_hex(bytes: &[u8]) -> Result { - let mut hex_string = String::with_capacity(2 * bytes.len()); - for byte in bytes { - write!(hex_string, "{:02X}", byte)?; - } - - Ok(hex_string) -}