@@ -87,7 +87,7 @@ fn write(
87
87
// more common convention for CLIs
88
88
'-'
89
89
} ;
90
- let name = sanitize_package_name ( file_name. as_ref ( ) , separator) ;
90
+ let name = sanitize_name ( file_name. as_ref ( ) , separator) ;
91
91
92
92
let mut workspace_root = target_dir. to_owned ( ) ;
93
93
workspace_root. push ( "eval" ) ;
@@ -154,7 +154,7 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
154
154
// more common convention for CLIs
155
155
'-'
156
156
} ;
157
- let name = sanitize_package_name ( file_name. as_ref ( ) , separator) ;
157
+ let name = sanitize_name ( file_name. as_ref ( ) , separator) ;
158
158
let hash = hash ( script) ;
159
159
let bin_name = format ! ( "{name}{separator}{hash}" ) ;
160
160
package
@@ -207,8 +207,27 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
207
207
Ok ( manifest)
208
208
}
209
209
210
- fn sanitize_package_name ( name : & str , placeholder : char ) -> String {
211
- restricted_names:: sanitize_package_name ( name, placeholder)
210
+ /// Ensure the package name matches the validation from `opt::cargo_new::check_name`
211
+ fn sanitize_name ( name : & str , placeholder : char ) -> String {
212
+ let mut name = restricted_names:: sanitize_package_name ( name, placeholder) ;
213
+
214
+ loop {
215
+ if restricted_names:: is_keyword ( & name) {
216
+ name. push ( placeholder) ;
217
+ } else if restricted_names:: is_conflicting_artifact_name ( & name) {
218
+ // Being an embedded manifest, we always assume it is a `[[bin]]`
219
+ name. push ( placeholder) ;
220
+ } else if name == "test" {
221
+ name. push ( placeholder) ;
222
+ } else if restricted_names:: is_windows_reserved ( & name) {
223
+ // Go ahead and be consistent across platforms
224
+ name. push ( placeholder) ;
225
+ } else {
226
+ break ;
227
+ }
228
+ }
229
+
230
+ name
212
231
}
213
232
214
233
fn hash ( script : & RawScript ) -> blake3:: Hash {
@@ -443,12 +462,12 @@ mod test_expand {
443
462
fn test_default ( ) {
444
463
snapbox:: assert_eq (
445
464
r#"[[bin]]
446
- name = "test-a472c7a31645d310613df407eab80844346938a3b8fe4f392cae059cb181aa85"
465
+ name = "test-- a472c7a31645d310613df407eab80844346938a3b8fe4f392cae059cb181aa85"
447
466
path = "/home/me/test.rs"
448
467
449
468
[package]
450
469
edition = "2021"
451
- name = "test"
470
+ name = "test- "
452
471
publish = false
453
472
version = "0.0.0"
454
473
@@ -465,15 +484,15 @@ strip = true
465
484
fn test_dependencies ( ) {
466
485
snapbox:: assert_eq (
467
486
r#"[[bin]]
468
- name = "test-3a1fa07700654ea2e893f70bb422efa7884eb1021ccacabc5466efe545da8a0b"
487
+ name = "test-- 3a1fa07700654ea2e893f70bb422efa7884eb1021ccacabc5466efe545da8a0b"
469
488
path = "/home/me/test.rs"
470
489
471
490
[dependencies]
472
491
time = "0.1.25"
473
492
474
493
[package]
475
494
edition = "2021"
476
- name = "test"
495
+ name = "test- "
477
496
publish = false
478
497
version = "0.0.0"
479
498
0 commit comments