From 344ea157dbc7a4f625e8bf0a16c1733e83a75179 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Wed, 31 Jan 2024 16:33:03 -0300 Subject: [PATCH] check if already exists --- tooling/cli/src/add.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/tooling/cli/src/add.rs b/tooling/cli/src/add.rs index b61751b7dce..4a8736ff059 100644 --- a/tooling/cli/src/add.rs +++ b/tooling/cli/src/add.rs @@ -111,17 +111,26 @@ pub fn command(options: Options) -> Result<()> { } // add plugin init code to main.rs or lib.rs + let plugin_init_fn = if metadata.builder { + "Builder::new().build()" + } else { + "init()" + }; + let plugin_init = format!(".plugin(tauri_plugin_{plugin_snake_case}::{plugin_init_fn})"); let re = Regex::new(r"(tauri\s*::\s*Builder\s*::\s*default\(\))(\s*)")?; for file in [tauri_dir.join("src/main.rs"), tauri_dir.join("src/lib.rs")] { let contents = std::fs::read_to_string(&file)?; + + if contents.contains(&plugin_init) { + log::info!( + "Plugin initialization code already found on {}", + file.display() + ); + return Ok(()); + } + if re.is_match(&contents) { - let plugin_init = if metadata.builder { - "Builder::new().build()" - } else { - "init()" - }; - let replacement = format!("$1$2.plugin(tauri_plugin_{plugin_snake_case}::{plugin_init})$2"); - let out = re.replace(&contents, replacement); + let out = re.replace(&contents, format!("$1$2{plugin_init}$2")); log::info!("Adding plugin to {}", file.display()); std::fs::write(file, out.as_bytes())?;