[PATCH] scripts: rust-analyzer: Skip crate module directories

From: Andreas Hindborg
Date: Tue Mar 07 2023 - 07:08:09 EST


When generating rust-analyzer configuration, skip module directories. This fixes
an issue that occur if we have

- drivers/block/driver.rs
- drivers/block/driver_mod/mod.rs

If `driver_mod` is a module of the crate `driver`, the directory `driver_mod`
may not contain `Makefile`, and `generate_rust_analyzer.py` will fail.

Signed-off-by: Andreas Hindborg <a.hindborg@xxxxxxxxxxx>
---
scripts/generate_rust_analyzer.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
index ecc7ea9a4dcf..e8c643fb2488 100755
--- a/scripts/generate_rust_analyzer.py
+++ b/scripts/generate_rust_analyzer.py
@@ -104,7 +104,7 @@ def generate_crates(srctree, objtree, sysroot_src):
name = path.name.replace(".rs", "")

# Skip those that are not crate roots.
- if f"{name}.o" not in open(path.parent / "Makefile").read():
+ if not (path.parent / "Makefile").is_file() or f"{name}.o" not in open(path.parent / "Makefile").read():
continue

logging.info("Adding %s", name)

base-commit: 8c20eb7e6a27b2c493b0bbb435e75cae7135634f
--
2.39.2