overview | download 1.9
$ find . -name '*.c' | entr make
$ ls *.md | entr +notify & $ while read F; do > markdown2html $F > done < notify
The Event Notify Test Runner is a general-purpose UNIX utility intended to make rapid feedback and automated testing natural and completely ordinary.
$ ls *.css *.html | entr xombrero -e "reload"
It's not uncommon for modern web frameworks to continuously hunt for file system changes and refreshes the page when run in single threaded or standalone mode. Contrast this with common UNIX daemons which simply respond to signals. The following will reload nginx every time it's configuration is modified
$ ls /etc/nginx/nginx.conf | entr pkill -HUP nginx
In general, entr avoids special purpose options that can easily emulated using inline commands, for example one-shot mode can be emulated by running sh -c 'kill $PPID'. However, the need to kill and restart a process is a very common development task, so an auto-reload feature was added in the 1.9 release, and is enabled using the -r flag:
$ ls *.rb | entr -r ruby main.rb
Unlike guard, entr is a zero-configuration tool with no dependencies (except on Linux, which requires libkqueue). The interface to entr is not only minimal, it aims to be simple enough to create a new category of ad hoc automation. These micro-tests reduce keystrokes, but more importantly they emphasize the utility of automated checks.
Tightening the edit-debug feedback loop requires a tool that is tuned for one task. inotifywait is light on dependencies, but it only works on Linux, and it's broad feature set doesn't provide a direct means of saying "run this command if any of these files change". This could be scripted, but there are a number of conditions to contend with: