@@ -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 bin_name = name. clone ( ) ;
159
159
package
160
160
. entry ( "name" . to_owned ( ) )
@@ -206,8 +206,27 @@ fn expand_manifest_(script: &RawScript, config: &Config) -> CargoResult<toml::Ta
206
206
Ok ( manifest)
207
207
}
208
208
209
- fn sanitize_package_name ( name : & str , placeholder : char ) -> String {
210
- restricted_names:: sanitize_package_name ( name, placeholder)
209
+ /// Ensure the package name matches the validation from `ops::cargo_new::check_name`
210
+ fn sanitize_name ( name : & str , placeholder : char ) -> String {
211
+ let mut name = restricted_names:: sanitize_package_name ( name, placeholder) ;
212
+
213
+ loop {
214
+ if restricted_names:: is_keyword ( & name) {
215
+ name. push ( placeholder) ;
216
+ } else if restricted_names:: is_conflicting_artifact_name ( & name) {
217
+ // Being an embedded manifest, we always assume it is a `[[bin]]`
218
+ name. push ( placeholder) ;
219
+ } else if name == "test" {
220
+ name. push ( placeholder) ;
221
+ } else if restricted_names:: is_windows_reserved ( & name) {
222
+ // Go ahead and be consistent across platforms
223
+ name. push ( placeholder) ;
224
+ } else {
225
+ break ;
226
+ }
227
+ }
228
+
229
+ name
211
230
}
212
231
213
232
fn hash ( script : & RawScript ) -> blake3:: Hash {
@@ -442,12 +461,12 @@ mod test_expand {
442
461
fn test_default ( ) {
443
462
snapbox:: assert_eq (
444
463
r#"[[bin]]
445
- name = "test"
464
+ name = "test- "
446
465
path = "/home/me/test.rs"
447
466
448
467
[package]
449
468
edition = "2021"
450
- name = "test"
469
+ name = "test- "
451
470
publish = false
452
471
version = "0.0.0"
453
472
@@ -464,15 +483,15 @@ strip = true
464
483
fn test_dependencies ( ) {
465
484
snapbox:: assert_eq (
466
485
r#"[[bin]]
467
- name = "test"
486
+ name = "test- "
468
487
path = "/home/me/test.rs"
469
488
470
489
[dependencies]
471
490
time = "0.1.25"
472
491
473
492
[package]
474
493
edition = "2021"
475
- name = "test"
494
+ name = "test- "
476
495
publish = false
477
496
version = "0.0.0"
478
497
0 commit comments