From b1493f9b35ff7201839f70eb55b145dbfeff6146 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 2 Nov 2024 14:01:26 +0200 Subject: [PATCH] fix(bindings): update CMakeLists.txt file (cherry picked from commit 66a1bc50fa31e3f127c7750e87c70bf2eaba1a9a) --- cli/src/init.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cli/src/init.rs b/cli/src/init.rs index c6a95d49..88e098b1 100644 --- a/cli/src/init.rs +++ b/cli/src/init.rs @@ -361,7 +361,7 @@ pub fn migrate_package_json(repo_path: &Path) -> Result { pub fn generate_grammar_files( repo_path: &Path, language_name: &str, - _allow_update: bool, + allow_update: bool, opts: Option, ) -> Result<()> { let dashed_language_name = language_name.to_kebab_case(); @@ -529,9 +529,20 @@ pub fn generate_grammar_files( generate_file(path, MAKEFILE_TEMPLATE, language_name, &generate_opts) })?; - missing_path(repo_path.join("CMakeLists.txt"), |path| { - generate_file(path, CMAKELISTS_TXT_TEMPLATE, language_name, &generate_opts) - })?; + missing_path_else( + repo_path.join("CMakeLists.txt"), + allow_update, + |path| generate_file(path, CMAKELISTS_TXT_TEMPLATE, language_name, &generate_opts), + |path| { + let contents = fs::read_to_string(path)?; + let old = "add_custom_target(test"; + if contents.contains(old) { + write_file(path, contents.replace(old, "add_custom_target(ts-test")) + } else { + Ok(()) + } + }, + )?; Ok(()) })?;