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:
--watch
to override)
.gitignore
to determine which files to ignore notifications for$WATCHEXEC_UPDATED_PATH
in the environment of the child process to the first file that triggered a changexargs
Watch all JavaScript, CSS and HTML files in the current directory and all subdirectories for changes, running make
when a change is detected:
$ watchexec --exts js,css,html make
Watch all files below src
and subdirectories for changes, running make test
when a change is detected:
$ watchexec --watch src make test
Call make test
when any file changes in this directory/subdirectory, except for everything below target
:
$ watchexec -i target make test
Call/restart python server.py
when any Python file in the current directory (and all subdirectories) changes:
$ watchexec -e py -r python server.py
Run make
when any file changes, using the .gitignore
file in the current directory to filter:
$ watchexec make
If you're running nightly Rust, install it using cargo:
$ cargo install watchexec
If you're using rustup, install it like this:
$ rustup toolchain install nightly
$ rustup run nightly cargo install watchexec
$ brew install https://raw.githubusercontent.com/mattgreen/watchexec/master/pkg/brew/watchexec.rb
For now, use the GitHub Releases tab to obtain the binary. PRs for packaging in various distros are welcomed.
Use the GitHub Releases tab to obtain the binary. In the future, I'll look at adding it to Chocolatey.
Currently, watchexec requires a recent nightly Rust to build, due to use of unstable features.