rescript-lang / rewatch

Rewatch is an alternative build system for the Rescript Compiler.
104 stars 14 forks source link

report and skip broken symlinks #136

Open adnelson opened 1 month ago

adnelson commented 1 month ago

I was running rewatch build on my project for the first time and it failed, confusingly claiming Could not read folder: src..., despite src clearly existing.

Upon some investigation the error was actually that I had a broken symlink (pointing to a non-existent file) in my project directory tree, which caused the like let metadata = fs::metadata(&entry_path_buf)?; to return an error, tanking the whole process.

The fix I have here checks specifically for a broken symlink, and if found, reports it and skips (continues) the loop. With this change, my project compiled without errors.

I also added the text of the error to the println!s reporting errors in a few places, with the idea that that might help make things clearer to a user. It's not part of the core fix here, so feel free to remove if undesirable.