mirror of
https://github.com/watchexec/watchexec.git
synced 2024-11-13 07:41:11 +01:00
Executes commands in response to file modifications
src | ||
.gitignore | ||
Cargo.toml | ||
LICENSE | ||
Makefile | ||
README.md |
#watchexec
Software development often involves running the same commands over and over. Boring!
watchexec
is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.
Example use cases:
- Automatically run unit tests
- Run linters/syntax checkers
##Status
Beta: CLI arguments subject to change
##Features
- Simple invocation and use
- Runs on OS X, Linux and Windows
- Monitors path specified on command line for changes
- Uses most efficient event polling mechanism, based on platform (except for BSD)
- Coalesces multiple filesystem events into one, for editors that use swap/backup files during saving
- Support for filtering/ignoring events based on glob patterns
- Optionally clears screen between executions
- Does not require a language runtime
- Small (~100 LOC)
##Anti-Features
- Not tied to any particular language or ecosystem
- Does not require a cryptic command line involving
xargs
##Usage
Call make test
when there are any changes in the src
directory:
$ watchexec src make test
Call make test
when any Python file changes in this directory, or a subdirectory:
$ watchexec -f '*.py' . make test
Call make test
when any file changes in this directory/subdirectory, except for everything below target
:
$ watchexec -i target . make test
Always quote glob patterns (*.py)!
##Installation
###OS X with Homebrew
$ brew install mattgreen/watchexec/watchexec
##Credits
- notify for doing most of the heavy-lifting