aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuckonaut <duckonaut@#gmail.com>2026-11-09 17:18:03 +0100
committerDuckonaut <duckonaut@#gmail.com>2026-11-09 17:18:03 +0100
commit0da8904eaaaa4d44fadbbbe2400077df3100afc6 (patch)
tree555be8a4e66cad1af1083a74573033b7e80eb91c
parentc3ac84ce230a307b264bc0383805d3250df43c0d (diff)
fix: fix build if target is in the source directory
-rw-r--r--src/luax/mod.rs7
1 files changed, 6 insertions, 1 deletions
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<String> {
pub fn preprocess_dir(path: &Path, output_path: &Path) -> Result<usize> {
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<usize> {
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;