arduino-cli
arduino-cli copied to clipboard
Compile fails on symlink
Describe the problem
When executing arduino-cli compile within a project that is also a git repository, I receive this error:
/Users/neale/myProject/.git/hooks/pre-commit: no such file or directory
This pre-commit hook is a symlink to a shell script that's also contained in the repository. This appears to happen regardless of where the symlink points / exists in the repository. There appears to be no way to work around the error other than completely removing the link.
To reproduce
Create a project with the structure:
- myProject
- myProject.ino
- aLink -> /somewhere/else
Execute arduino-cli compile within the directory.
Expected behavior
Several solutions to this come to mind:
- Recursing hidden directories probably shouldn't happen by default
- Ability to explicitly list files / directories to compile
- An option to follow / not follow symlinks
Arduino CLI version
0.23.0
Operating system
macOS
Operating system version
12.3.1
Additional context
No response
Issue checklist
- [X] I searched for previous reports in the issue tracker
- [X] I verified the problem still occurs when using the nightly build
- [X] My report contains all necessary details
Hm, I recall that .git (or maybe all hidden directories) were already filtered out from the list of files to compile/load, but maybe I remember wrong (or this was changed at some point, maybe).
In any case, I ran into issues with (broken) symlinks breaking compilation before, see #1438 for an attempt at fixing this (which is probably not ideal, but will be useful as a starting point and see some of the previous attempts, considerations and involved code).
This requires two fix IMHO:
- ignore
.gitfolders in sketches - ignore broken symbolic links and continue the compilation anyway.