From 4874057fe79bbf9ff228566ae6904fc2ca639aa0 Mon Sep 17 00:00:00 2001 From: SyedAhkam Date: Sat, 7 Oct 2023 06:50:54 +0530 Subject: [PATCH] fix: windows compatible local.properties file --- src/lib.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index e12fd9c..e36f1f3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -45,10 +45,21 @@ pub fn copy_template(dest: &Path, vars: BTreeMap) -> Result<()> } pub fn create_local_properties_file(root: &Path, sdk_path: &str) -> Result<()> { + let sdk_path = Path::new(sdk_path); let prop_file_path = PathBuf::new().join(root).join("local.properties"); - let content = format!("sdk.dir={}", sdk_path); - std::fs::write(prop_file_path, content).context("Unable to write local.properties file")?; + // It is necessary to escape paths on windows + let content = if cfg!(windows) { + format!("sdk.dir={}", sdk_path.display()).replace("\\", "\\\\") + } else { + format!("sdk.dir={}", sdk_path.display()) + }; + + if sdk_path.exists() { + std::fs::write(prop_file_path, content).context("Unable to write local.properties file")?; + } else { + eprintln!("warning: did not create local.properties file because of invalid sdk path") + } Ok(()) }