diff --git a/src/cargo/ops/vendor.rs b/src/cargo/ops/vendor.rs index eb1d8f63637..a5eeb68f3e9 100644 --- a/src/cargo/ops/vendor.rs +++ b/src/cargo/ops/vendor.rs @@ -40,7 +40,11 @@ pub fn vendor(ws: &Workspace<'_>, opts: &VendorOptions<'_>) -> CargoResult<()> { config, "To use vendored sources, add this to your .cargo/config.toml for this project:\n\n" ); - crate::drop_print!(config, "{}", &toml::to_string(&vendor_config).unwrap()); + crate::drop_print!( + config, + "{}", + &toml::to_string_pretty(&vendor_config).unwrap() + ); } } diff --git a/tests/testsuite/vendor.rs b/tests/testsuite/vendor.rs index 75d78d7d9e6..947ff324fa8 100644 --- a/tests/testsuite/vendor.rs +++ b/tests/testsuite/vendor.rs @@ -37,6 +37,38 @@ fn vendor_simple() { p.cargo("build").run(); } +#[cargo_test] +fn vendor_sample_config() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + + [dependencies] + log = "0.3.5" + "#, + ) + .file("src/lib.rs", "") + .build(); + + Package::new("log", "0.3.5").publish(); + + p.cargo("vendor --respect-source-config") + .with_stdout( + r#" +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" +"#, + ) + .run(); +} + fn add_vendor_config(p: &Project) { p.change_file( ".cargo/config",