Skip to content

Commit

Permalink
refactor(embedded): Centralize separator choice
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Jun 13, 2023
1 parent 3bbd1e5 commit 35a8065
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/cargo/util/toml/embedded.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ fn write(
.file_stem()
.ok_or_else(|| anyhow::format_err!("no file name"))?
.to_string_lossy();
let name = sanitize_package_name(file_name.as_ref());
let separator = '_';
let name = sanitize_package_name(file_name.as_ref(), separator);

let mut workspace_root = target_dir.to_owned();
workspace_root.push("eval");
Expand Down Expand Up @@ -139,9 +140,10 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
.file_stem()
.ok_or_else(|| anyhow::format_err!("no file name"))?
.to_string_lossy();
let name = sanitize_package_name(file_name.as_ref());
let separator = '_';
let name = sanitize_package_name(file_name.as_ref(), separator);
let hash = hash(script);
let bin_name = format!("{name}_{hash}");
let bin_name = format!("{name}{separator}{hash}");
package
.entry("name".to_owned())
.or_insert(toml::Value::String(name));
Expand Down Expand Up @@ -192,12 +194,12 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
Ok(manifest)
}

fn sanitize_package_name(name: &str) -> String {
fn sanitize_package_name(name: &str, placeholder: char) -> String {
let mut slug = String::new();
for (i, c) in name.chars().enumerate() {
match (i, c) {
(0, '0'..='9') => {
slug.push('_');
slug.push(placeholder);
slug.push(c);
}
(_, '0'..='9') | (_, 'a'..='z') | (_, '_') | (_, '-') => {
Expand All @@ -208,7 +210,7 @@ fn sanitize_package_name(name: &str) -> String {
slug.push(c.to_ascii_lowercase());
}
(_, _) => {
slug.push('_');
slug.push(placeholder);
}
}
}
Expand Down

0 comments on commit 35a8065

Please sign in to comment.