Automatically rebuilding on file-write with inotify
With projects that have an incremental or otherwise very quick build, it's disrupting to have to switch back to a terminal to run build commands when editing.
A reasonably effective solution
There's a linux library/utility called
inotify that's meant to solve this
exact problem. I usually see it employed as a library utilized in other scripts
or build tools, so the shell-based solution isn't the most googleable thing
You'll need the inotify tools to get access to the command we need. Under
Debian these are packaged as
inotifywait is a command that watches inodes for a given event, then simply
exits. This is useful for simply moving to the next iteration of a loop.
while true; do inotifywait -e modify file.txt && echo 'file.txt modified'; done
I usually use it to quietly rebuild when any source file in the current project is modified.
while true; do make inotifywait -qre modify ./src done