From a1615d4f0e9b8376e775ed8f9a0801ebd4657d17 Mon Sep 17 00:00:00 2001 From: Elizabeth Engelman <4752801+elizabethengelman@users.noreply.github.com> Date: Wed, 21 Feb 2024 13:15:26 -0500 Subject: [PATCH] Rename Cargo.toml in the init template files (#1206) --- cmd/soroban-cli/src/commands/contract/init.rs | 8 +++++++- .../{Cargo.toml => Cargo.toml.removeextension} | 0 2 files changed, 7 insertions(+), 1 deletion(-) rename cmd/soroban-cli/src/utils/contract-init-template/{Cargo.toml => Cargo.toml.removeextension} (100%) diff --git a/cmd/soroban-cli/src/commands/contract/init.rs b/cmd/soroban-cli/src/commands/contract/init.rs index fe88dbb68..ef25c08ad 100644 --- a/cmd/soroban-cli/src/commands/contract/init.rs +++ b/cmd/soroban-cli/src/commands/contract/init.rs @@ -198,7 +198,8 @@ fn init( fn copy_template_files(project_path: &Path) -> Result<(), Error> { for item in TemplateFiles::iter() { - let to = project_path.join(item.as_ref()); + let mut to = project_path.join(item.as_ref()); + if file_exists(&to.to_string_lossy()) { println!( "ℹ️ Skipped creating {} as it already exists", @@ -224,6 +225,11 @@ fn copy_template_files(project_path: &Path) -> Result<(), Error> { e })?; + // We need to include the Cargo.toml file as Cargo.text in the template so that it will be included the package. This is making sure that the Cargo file is written as Cargo.toml in the new project. This is a workaround for this issue: https://github.com/rust-lang/cargo/issues/8597. + if item == "Cargo.toml.removeextension" { + to = project_path.join("Cargo.toml"); + } + println!("➕ Writing {}", &to.to_string_lossy()); write(&to, file_contents).map_err(|e| { eprintln!("Error writing file: {to:?}"); diff --git a/cmd/soroban-cli/src/utils/contract-init-template/Cargo.toml b/cmd/soroban-cli/src/utils/contract-init-template/Cargo.toml.removeextension similarity index 100% rename from cmd/soroban-cli/src/utils/contract-init-template/Cargo.toml rename to cmd/soroban-cli/src/utils/contract-init-template/Cargo.toml.removeextension