diff --git a/src/bin/commands/new.rs b/src/bin/commands/new.rs index 8b8e607400e..ff84722095f 100644 --- a/src/bin/commands/new.rs +++ b/src/bin/commands/new.rs @@ -11,10 +11,16 @@ pub fn cli() -> App { pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let opts = args.new_options(config)?; + ops::new(&opts, config)?; let path = args.value_of("path").unwrap(); + let project_name = if let Some(name) = args.value_of("name") { + name + } else { + path + }; config .shell() - .status("Created", format!("{} `{}` project", opts.kind, path))?; + .status("Created", format!("{} `{}` project", opts.kind, project_name))?; Ok(()) } diff --git a/tests/testsuite/new.rs b/tests/testsuite/new.rs index e5522f72d4b..1fab114bbb2 100644 --- a/tests/testsuite/new.rs +++ b/tests/testsuite/new.rs @@ -545,3 +545,18 @@ fn explicit_invalid_name_not_suggested() { ), ); } + +#[test] +fn explicit_project_name() { + assert_that( + cargo_process("new") + .arg("--lib") + .arg("foo") + .arg("--name") + .arg("bar") + .env("USER", "foo"), + execs() + .with_status(0) + .with_stderr("[CREATED] library `bar` project"), + ); +}