Skip to content

Commit 8a40b36

Browse files
committed
refactor(embedded): Move package.name to normalization
1 parent d5b5074 commit 8a40b36

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/cargo/util/toml/embedded.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,6 @@ fn expand_manifest_(manifest: &str, path: &std::path::Path) -> CargoResult<toml:
108108
.to_string_lossy();
109109
let name = sanitize_name(file_stem.as_ref());
110110
let bin_name = name.clone();
111-
package
112-
.entry("name".to_owned())
113-
.or_insert(toml::Value::String(name));
114111

115112
let mut bin = toml::Table::new();
116113
bin.insert("name".to_owned(), toml::Value::String(bin_name));
@@ -124,7 +121,7 @@ fn expand_manifest_(manifest: &str, path: &std::path::Path) -> CargoResult<toml:
124121
}
125122

126123
/// Ensure the package name matches the validation from `ops::cargo_new::check_name`
127-
fn sanitize_name(name: &str) -> String {
124+
pub fn sanitize_name(name: &str) -> String {
128125
let placeholder = if name.contains('_') {
129126
'_'
130127
} else {
@@ -545,7 +542,6 @@ name = "test-"
545542
path = "/home/me/test.rs"
546543
547544
[package]
548-
name = "test-"
549545
550546
[workspace]
551547
@@ -573,7 +569,6 @@ path = [..]
573569
time = "0.1.25"
574570
575571
[package]
576-
name = "test-"
577572
578573
[workspace]
579574

src/cargo/util/toml/mod.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,20 @@ fn normalize_package_toml<'a>(
589589
original_package
590590
.name
591591
.clone()
592+
.or_else(|| {
593+
if is_embedded {
594+
let file_stem = manifest_file
595+
.file_stem()
596+
.expect("file name enforced previously")
597+
.to_string_lossy();
598+
let name = embedded::sanitize_name(file_stem.as_ref());
599+
let name =
600+
manifest::PackageName::new(name).expect("sanitize made the name valid");
601+
Some(name)
602+
} else {
603+
None
604+
}
605+
})
592606
.ok_or_else(|| anyhow::format_err!("missing field `package.name`"))?,
593607
);
594608
let version = original_package

0 commit comments

Comments
 (0)