refactor(embedded): Centralize placeholder

This was originally split out because before #12269, it was needed
elsewhere.
This commit is contained in:
Ed Page 2023-06-16 19:47:59 -05:00
parent f4abdbe5f5
commit 667ff78d69

View File

@ -80,14 +80,7 @@ fn write(
.file_stem() .file_stem()
.ok_or_else(|| anyhow::format_err!("no file name"))? .ok_or_else(|| anyhow::format_err!("no file name"))?
.to_string_lossy(); .to_string_lossy();
let separator = if file_name.contains('_') { let name = sanitize_name(file_name.as_ref());
'_'
} else {
// Since embedded manifests only support `[[bin]]`s, prefer arrow-case as that is the
// more common convention for CLIs
'-'
};
let name = sanitize_name(file_name.as_ref(), separator);
let mut workspace_root = target_dir.to_owned(); let mut workspace_root = target_dir.to_owned();
workspace_root.push("eval"); workspace_root.push("eval");
@ -147,14 +140,7 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
.file_stem() .file_stem()
.ok_or_else(|| anyhow::format_err!("no file name"))? .ok_or_else(|| anyhow::format_err!("no file name"))?
.to_string_lossy(); .to_string_lossy();
let separator = if file_name.contains('_') { let name = sanitize_name(file_name.as_ref());
'_'
} else {
// Since embedded manifests only support `[[bin]]`s, prefer arrow-case as that is the
// more common convention for CLIs
'-'
};
let name = sanitize_name(file_name.as_ref(), separator);
let bin_name = name.clone(); let bin_name = name.clone();
package package
.entry("name".to_owned()) .entry("name".to_owned())
@ -207,7 +193,15 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
} }
/// Ensure the package name matches the validation from `ops::cargo_new::check_name` /// Ensure the package name matches the validation from `ops::cargo_new::check_name`
fn sanitize_name(name: &str, placeholder: char) -> String { fn sanitize_name(name: &str) -> String {
let placeholder = if name.contains('_') {
'_'
} else {
// Since embedded manifests only support `[[bin]]`s, prefer arrow-case as that is the
// more common convention for CLIs
'-'
};
let mut name = restricted_names::sanitize_package_name(name, placeholder); let mut name = restricted_names::sanitize_package_name(name, placeholder);
loop { loop {