diff --git a/Cargo.lock b/Cargo.lock index 4ada694..0cc26df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,6 +519,7 @@ version = "0.3.7-alpha.1" dependencies = [ "mist-analyzer", "mist-api", + "toml", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8b37fa1..8a33dff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ include = [ [dependencies] mist-analyzer = { workspace = true } mist-api = { workspace = true } +toml = "1.1.2" [workspace] members = [ diff --git a/src/main.mist b/src/main.mist index 8cb02ac..cc01ecf 100644 --- a/src/main.mist +++ b/src/main.mist @@ -99,12 +99,14 @@ void init_project(Vec mut args) void inject_mist_target(bool is_lib) { String toml_content = fs::read_to_string("Cargo.toml").expect("Failed to read Cargo.toml"); - str& inject = if is_lib { - "\n[lib]\nname = \"my_lib\"\npath = \".mist/src/lib.rs\"\n" + toml::Value parsed = toml::from_str(&toml_content).expect("Failed to parse Cargo.toml"); + String name = parsed["package"]["name"].as_str().expect("Missing package.name in Cargo.toml").to_string(); + String inject = if is_lib { + format!("\n[lib]\nname = \"{name}\"\npath = \".mist/src/lib.rs\"\n") } else { - "\n[[bin]]\nname = \"my_bin\"\npath = \".mist/src/main.rs\"\n" + format!("\n[[bin]]\nname = \"{name}\"\npath = \".mist/src/main.rs\"\n") }; - fs::write("Cargo.toml", toml_content + inject).expect("Failed to inject to Cargo.toml"); + fs::write("Cargo.toml", toml_content + &inject).expect("Failed to inject to Cargo.toml"); } void add_mist_toml(bool is_lib)