https://github.com/eradman/entr
Run arbitrary commands when files change
https://github.com/eradman/entr
inotify kqueue test-automation
Last synced: 4 days ago
JSON representation
Run arbitrary commands when files change
- Host: GitHub
- URL: https://github.com/eradman/entr
- Owner: eradman
- License: other
- Created: 2018-03-27T12:32:31.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-06T19:51:59.000Z (2 months ago)
- Last Synced: 2025-04-03T11:23:04.491Z (11 days ago)
- Topics: inotify, kqueue, test-automation
- Language: C
- Homepage: http://eradman.com/entrproject/
- Size: 979 KB
- Stars: 4,939
- Watchers: 38
- Forks: 111
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS
- License: LICENSE
Awesome Lists containing this project
- awesome-tools - `entr`
- awesome-repositories - eradman/entr - Run arbitrary commands when files change (C)
- awesome-hledger - entr - Alternative to [watchexec](https://github.com/watchexec/watchexec) (Related Tools)
- jimsghstars - eradman/entr - Run arbitrary commands when files change (C)
- stars - eradman/entr - Run arbitrary commands when files change (C)
README
Event Notify Test Runner
========================A utility for running arbitrary commands when files change. Uses kqueue(2) or
inotify(7) to avoid polling. `entr` was written to facilitate rapid feedback
on the command line.Source Installation - BSD, Mac OS, and Linux
--------------------------------------------./configure
make test
make installTo see available build options run `./configure -h`
Docker and WSL
--------------Incomplete inotify support on _Windows Subsystem for Linux_ and _Docker for Mac_
may cause `entr` to respond incorrectly. Setting the environment variable
`ENTR_INOTIFY_WORKAROUND` enables `entr` to operate in these environments.Linux Features
--------------Symlinks can be monitored for changes by setting the environment variable
`ENTR_INOTIFY_SYMLINK`.Man Page Examples
-----------------Rebuild a project if source files change, limiting output to the first 20 lines:
$ find src/ | entr -s 'make | head -n 20'
Launch and auto-reload a node.js server:
$ ls *.js | entr -r node app.js
Clear the screen and run a query after the SQL script is updated:
$ echo my.sql | entr -cp psql -f /_
Rebuild project if a source file is modified or added to the src/ directory:
$ while sleep 0.1; do ls src/*.rb | entr -d make; done
Auto-reload a web server, or terminate if the server exits
$ ls * | entr -rz ./httpd
News
----Notification of new releases are provided by an
[Atom feed](https://github.com/eradman/entr/releases.atom),
and release history is covered in the [NEWS](NEWS) file.