From 0da8904eaaaa4d44fadbbbe2400077df3100afc6 Mon Sep 17 00:00:00 2001 From: Duckonaut Date: Mon, 9 Nov 2026 17:18:03 +0100 Subject: fix: fix build if target is in the source directory --- src/luax/mod.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/luax/mod.rs b/src/luax/mod.rs index 13afd88..7b1c9b4 100644 --- a/src/luax/mod.rs +++ b/src/luax/mod.rs @@ -121,10 +121,14 @@ pub fn preprocess(s: &str) -> Result { pub fn preprocess_dir(path: &Path, output_path: &Path) -> Result { let mut preprocessed = 0; + let absolute_output_path = output_path.canonicalize()?; for entry in std::fs::read_dir(path)? { let entry = entry?; let path = entry.path(); if path.is_dir() { + if path.canonicalize()? == absolute_output_path { + continue; + } let output_dir = output_path.join(path.file_name().unwrap()); if !output_dir.is_dir() && output_dir.exists() { return Err(std::io::Error::new( @@ -136,7 +140,8 @@ pub fn preprocess_dir(path: &Path, output_path: &Path) -> Result { if !output_dir.exists() { std::fs::create_dir(&output_dir)?; } - preprocessed += preprocess_dir(&path, &output_path.join(path.file_name().unwrap()))?; + let inner_path = output_path.join(path.file_name().unwrap()); + preprocessed += preprocess_dir(&path, &inner_path)?; } else { if path.extension().unwrap_or_default() != "luax" { continue; -- cgit v1.3.1