Skip to content

Commit 251d437

Browse files
committed
Auto merge of #13367 - epage:new-creating, r=weihanglo
fix(new): Print a 'Creating', rather than 'Created' status ### What does this PR try to resolve? This has bothered me about `cargo new` and `cargo init` for a while that the output is read backwards, for example: ```diff --- i/tests/testsuite/cargo_init/path_contains_separator/stderr.log +++ w/tests/testsuite/cargo_init/path_contains_separator/stderr.log `@@` -1,3 +1,3 `@@` + Creating binary (application) package warning: the path `[ROOT]/case/test:ing/.` contains invalid PATH characters (usually `:`, `;`, or `"`) It is recommended to use a different name to avoid problems. - Created binary (application) package ``` ### How should we test and review this PR? ### Additional information
2 parents 8ed4cb1 + db54c04 commit 251d437

File tree

55 files changed

+92
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+92
-83
lines changed

crates/cargo-test-support/src/compare.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ fn substitute_macros(input: &str) -> String {
192192
("[CHECKING]", " Checking"),
193193
("[COMPLETED]", " Completed"),
194194
("[CREATED]", " Created"),
195+
("[CREATING]", " Creating"),
195196
("[CREDENTIAL]", " Credential"),
196197
("[DOWNGRADING]", " Downgrading"),
197198
("[FINISHED]", " Finished"),

src/bin/cargo/commands/init.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ pub fn cli() -> Command {
2121

2222
pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult {
2323
let opts = args.new_options(config)?;
24-
let project_kind = ops::init(&opts, config)?;
25-
config
26-
.shell()
27-
.status("Created", format!("{} package", project_kind))?;
24+
ops::init(&opts, config)?;
2825
Ok(())
2926
}

src/bin/cargo/commands/new.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,5 @@ pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult {
2323
let opts = args.new_options(config)?;
2424

2525
ops::new(&opts, config)?;
26-
let path = args.get_one::<String>("path").unwrap();
27-
let package_name = if let Some(name) = args.get_one::<String>("name") {
28-
name
29-
} else {
30-
path
31-
};
32-
config.shell().status(
33-
"Created",
34-
format!("{} `{}` package", opts.kind, package_name),
35-
)?;
3626
Ok(())
3727
}

src/cargo/ops/cargo_new.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -439,19 +439,22 @@ fn calculate_new_project_kind(
439439

440440
pub fn new(opts: &NewOptions, config: &Config) -> CargoResult<()> {
441441
let path = &opts.path;
442+
let name = get_name(path, opts)?;
443+
config
444+
.shell()
445+
.status("Creating", format!("{} `{}` package", opts.kind, name))?;
446+
442447
if path.exists() {
443448
anyhow::bail!(
444449
"destination `{}` already exists\n\n\
445450
Use `cargo init` to initialize the directory",
446451
path.display()
447452
)
448453
}
449-
450454
check_path(path, &mut config.shell())?;
451455

452456
let is_bin = opts.kind.is_bin();
453457

454-
let name = get_name(path, opts)?;
455458
check_name(name, opts.name.is_none(), is_bin, &mut config.shell())?;
456459

457460
let mkopts = MkOptions {
@@ -480,20 +483,19 @@ pub fn init(opts: &NewOptions, config: &Config) -> CargoResult<NewProjectKind> {
480483
}
481484

482485
let path = &opts.path;
486+
let name = get_name(path, opts)?;
487+
let mut src_paths_types = vec![];
488+
detect_source_paths_and_types(path, name, &mut src_paths_types)?;
489+
let kind = calculate_new_project_kind(opts.kind, opts.auto_detect_kind, &src_paths_types);
490+
config
491+
.shell()
492+
.status("Creating", format!("{} package", opts.kind))?;
483493

484494
if path.join("Cargo.toml").exists() {
485495
anyhow::bail!("`cargo init` cannot be run on existing Cargo packages")
486496
}
487-
488497
check_path(path, &mut config.shell())?;
489498

490-
let name = get_name(path, opts)?;
491-
492-
let mut src_paths_types = vec![];
493-
494-
detect_source_paths_and_types(path, name, &mut src_paths_types)?;
495-
496-
let kind = calculate_new_project_kind(opts.kind, opts.auto_detect_kind, &src_paths_types);
497499
let has_bin = kind.is_bin();
498500

499501
if src_paths_types.is_empty() {

tests/testsuite/bad_config.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ fn bad4() {
105105
.with_status(101)
106106
.with_stderr(
107107
"\
108+
[CREATING] binary (application) `foo` package
108109
[ERROR] Failed to create package `foo` at `[..]`
109110
110111
Caused by:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
Creating library package
12
error: cannot have a package with multiple libraries, found both `case.rs` and `lib.rs`
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1+
Creating binary (application) package
12
warning: file `case.rs` seems to be a library file
2-
Created binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1+
Creating library package
12
warning: file `case.rs` seems to be a binary (application) file
2-
Created library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package

tests/testsuite/cargo_init/invalid_dir_name/stderr.log

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
Creating binary (application) package
12
error: invalid character `.` in package name: `foo.bar`, characters must be Unicode XID characters (numbers, `-`, `_`, or most letters)
23
If you need a package name to not match the directory name, consider using --name flag.
34
If you need a binary with the name "foo.bar", use a valid package name, and set the binary name to be different from the package. This can be done by setting the binary filename to `src/bin/foo.bar.rs` or change the name in Cargo.toml with:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1+
Creating binary (application) package
12
warning: the path `[ROOT]/case/test:ing/.` contains invalid PATH characters (usually `:`, `;`, or `"`)
23
It is recommended to use a different name to avoid problems.
3-
Created binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package

tests/testsuite/cargo_init/reserved_name/stderr.log

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
Creating binary (application) package
12
error: the name `test` cannot be used as a package name, it conflicts with Rust's built-in test library
23
If you need a package name to not match the directory name, consider using --name flag.
34
If you need a binary with the name "test", use a valid package name, and set the binary name to be different from the package. This can be done by setting the binary filename to `src/bin/test.rs` or change the name in Cargo.toml with:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created library package
1+
Creating library package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) package
1+
Creating binary (application) package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `[ROOT]/case/crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
Creating binary (application) `` package
12
error: package name cannot be empty
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `crates/foo` package
1+
Creating binary (application) `foo` package
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Created binary (application) `bar` package
1+
Creating binary (application) `bar` package

0 commit comments

Comments
 (0)