Skip to content

Commit 4986d8c

Browse files
committed
Auto merge of #6802 - ehuss:new-empty-email, r=Eh2406
new/init: Don't include email if it is empty. For `cargo new` or `cargo init`, if the email address is empty, don't include an empty `<>` in the `authors` field in `Cargo.toml`. This can be useful if you want to include an email address in the git config, but you don't want it in new manifest files. Closes #4892
2 parents ede459e + 4282274 commit 4986d8c

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/cargo/ops/cargo_new.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,13 @@ fn mk(config: &Config, opts: &MkOptions<'_>) -> CargoResult<()> {
567567
(Some(name), Some(email), _, _)
568568
| (Some(name), None, _, Some(email))
569569
| (None, Some(email), name, _)
570-
| (None, None, name, Some(email)) => format!("{} <{}>", name, email),
570+
| (None, None, name, Some(email)) => {
571+
if email.is_empty() {
572+
name
573+
} else {
574+
format!("{} <{}>", name, email)
575+
}
576+
}
571577
(Some(name), None, _, None) | (None, None, name, None) => name,
572578
};
573579

tests/testsuite/new.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,3 +511,14 @@ fn new_with_bad_edition() {
511511
.with_status(1)
512512
.run();
513513
}
514+
515+
#[test]
516+
fn new_with_blank_email() {
517+
cargo_process("new foo")
518+
.env("CARGO_NAME", "Sen")
519+
.env("CARGO_EMAIL", "")
520+
.run();
521+
522+
let contents = fs::read_to_string(paths::root().join("foo/Cargo.toml")).unwrap();
523+
assert!(contents.contains(r#"authors = ["Sen"]"#), contents);
524+
}

0 commit comments

Comments
 (0)